PDA

View Full Version : سوال: اشکال در نمایش خطا دستور هام برای ذخیره و آپلود و نمایش تصاویر



davidrobert
یک شنبه 09 فروردین 1394, 16:13 عصر
سلام و خسته نباشید .
من میخواستم در کد نویسی خودم 4 تا عملیات رو هم زمان انجام بدم ولی با مشکلی بر خورد کردم.
اول میخوام وقتی فایل آپلود کردم اسم فایل در کادر متن بیفته ولی وقتی تصویری آپلود نشده در سایت خطا داده میشود و دوم میخوام عکس که در مسیر مورد نظر ذخیره کردم رو ببینم ولی با تو اون جهت هم با مشکل بر خورد میکنم. که میشه
قبل از عملیات آپلود سایت خطا میده وقتی آپلود انجام شد و مقدار اسم عکس در کادر متن ریخته شد خطا بر طرف میشه و دوم میخوام عکسی که آپلود شده در مسیر مورد نظر با خوندن اسمش از دیتابیس نمایش بده ولی خطا میده نمیدونم چطور جلو خطا ها رو بگیرم.
این کد من.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body dir="rtl">
<div>

<table border="1" align="center" bgcolor="#f0f8ff" width="90%">
<?php
include ("db.php");
$result = mysql_query("SELECT * FROM `tblphoto`");

while ($test = mysql_fetch_array($result))
{
$id=$test['id'];
echo "<tr align='center'>";
echo"<td>".$test['id']."</td>";
echo "<td>".$test['fey']."</td>";
echo "<td>".$test['Photo']."</td>";
$nameShowPhoto=$test['Photo'];
echo "<td>".$test['<img src="Images/"'.$nameShowPhoto.'"\>'];
// echo ' <input type="text" value="'.$name.'" name="txtphoto"\>
echo"</tr>";
}
if(isset($_GET["img"]))
{
$n=$_GET["img"];
echo "<img src='Images/".$n."'>";
}
mysql_close($conn);
?>
</table>
</div>


<?php


if (isset($_POST['submit']))
{



include 'db.php';

// $title=$_POST['txtid'] ;
$fey= $_POST['txtname'] ;
$photo=$_POST['txtphoto'] ;
// $year=$_POST['txtyear'] ;

mysql_query("INSERT INTO `tblphoto`(fey,Photo)
VALUES ('$fey','$photo')");
}
$valid_formats = array("jpg", "png", "gif", "zip", "bmp");
$max_file_size = 2048*200; //100 kb
$path = "Images/"; // Upload directory
$count = 0;
//$uploadfile=$uploaddir.basename($_FILES['file']['namehpto']);
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to execute all files
foreach ($_FILES['files']['name'] as $f => $name) {
if ($_FILES['files']['error'][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES['files']['error'][$f] == 0) {
if ($_FILES['files']['size'][$f] > $max_file_size) {
$message[] = "$name از حجمی بالاتر از مقدار مجاز برخوردار است.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name از فرمت فایلی مجاز برای آپلود برخوردار نیست.";

continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name)) {
$count++; // Number of successfully uploaded files
}
}
}
}
}

echo '<form method="post">';
echo '<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" dir="rtl">';
echo '<tr>';
// echo ' <td align="center" valign="middle">شناسه <input type="text" name="txtid"/></td>';
echo ' <td align="center" valign="middle">قیمت <input type="text" name="txtname"/></td>';
echo '<td align="center" valign="middle">نام عکس';
echo ' <input type="text" value="'.$name.'" name="txtphoto"\></td>';
echo ' <td align="center" valign="middle"><input type="submit" name="submit" value="ذخیره"/></td>';
echo '</tr>';
echo '</table>';
echo '</form>';


# error messages
if (isset($message)) {
foreach ($message as $msg) {
printf("<p class='status'>%s</p></ br>\n", $msg);
}
}
# success message
if($count !=0){
printf("<p class='status'>%d فایل با موفقیت اضافه شد.</p>\n", $count);
}

echo '<form action="" method="post" enctype="multipart/form-data">';
echo '<input type="file" name="files[]" multiple="multiple" accept="image/*">';
echo '<input type="submit" value="آپلود کن!">';
echo '</form>';

?>

<body>



</body>
</html>
این هم تصویر خطا
قبل از آپلود
129861
بعد از آپلود کردن و ذخیره تصویر
129862
و در آخر نمایش نام تصویر ذخیره شده و خطا های موجود برای خالی بودن کادر متن نمایش نام تصویر آپلود.
129864
میخوام در این کد وقتی آپلود کردم اسم عکس رو عوض کنه اگه تصویر موجود بود و اسم جدید رو به کادر متن ارسال کنه این رو شدید نیاز دارم کلی گشتم چیزی پیدا نکردم ممنون میشم کمک کنید با تشکر.

reza_alie
یک شنبه 09 فروردین 1394, 17:45 عصر
سلام دوست عزیز اگه امکان داره بانک رو بذار تا کامل بررسی کنم

davidrobert
یک شنبه 09 فروردین 1394, 19:35 عصر
سورس و و دیتابیس رو بزارم چشم
چون من دارم کد های مورد نظرم رو مینویسم تا در موقع لازم ازش استفاده کنم.
این کد من به همراه دیتابیس من هستش
http://uplod.ir/84xjdcfzlatp/usecode.zip.htm

Mohammadsgh
یک شنبه 09 فروردین 1394, 19:45 عصر
باید شرط بزاری و با تابع isset چک کنی.اون زمان خطاها دیگه نمایش داده نمیشن

davidrobert
یک شنبه 09 فروردین 1394, 19:49 عصر
امکانش تو اون سورس بهم نشان بدید و برای من سند کنید ممنون میشم.

davidrobert
دوشنبه 10 فروردین 1394, 12:02 عصر
کسی نیست که کد من رو ببینه درست شدش رو بهم بده ببینم چطور باید رفع کنم ممنون میشم این کد های مورد نیزا من هستش که دارم جمع میکنم تا در سایت اصلی خودم استفاده کنم.

Mohammadsgh
دوشنبه 10 فروردین 1394, 15:17 عصر
تو خط 24 ایندکس آرایه تون اشتباهه.به جای pic که گذاشتم نام فیلد دیتابیستون رو بزارید.چند تا اشتباه دیگه هم داشتید که درستش کردم.مانند اینکلود کردن فایل دیتابیس
http://uplod.ir/17d3krm5wjbx/SendFile.rar.htm

davidrobert
دوشنبه 10 فروردین 1394, 22:33 عصر
دوست عزیز Mohammadsgh (http://barnamenevis.org/member.php?280741-Mohammadsgh) ممنون بابت فایل ولی امکان دانلود به من داده نمیشه ممنون میشم دوباره برای من آپلود کنید چون نوشد دانلود کنم چون راه به راه داره خطا میده برای دانلود.

davidrobert
چهارشنبه 12 فروردین 1394, 09:40 صبح
سلامدوست عزیز Mohammadsgh (http://barnamenevis.org/member.php?280741-Mohammadsgh) ممنون بابت فایل ولی این فایل چند بار زدم برای دانلود http://uplod.ir/17d3krm5wjbx/SendFile.rar.htm ولی این فایل موجود نیست برای دانلود امکانش هستش دوباره برای من ارسال کنید.
ممنون میشم.

Mohammadsgh
چهارشنبه 12 فروردین 1394, 15:38 عصر
لینک درسته و فایل دانلود میشه پس مشکل از کجاست؟

davidrobert
چهارشنبه 12 فروردین 1394, 17:14 عصر
دوست عزیز دانلود نمیشه این هم پیغام موجود نبود فایل. همین الان تصویر رو گرفتم
129951

Mohammadsgh
چهارشنبه 12 فروردین 1394, 20:11 عصر
من چک کردم و لینک درسته.شما هم بدید دوستان چک کنن.باور کنید درسته

Tarragon
چهارشنبه 12 فروردین 1394, 20:18 عصر
سلام

129952

davidrobert
پنج شنبه 13 فروردین 1394, 14:00 عصر
سلام Tarragon (http://barnamenevis.org/member.php?235166-Tarragon) عزیز من فایل شما رو دانلود کردم ولی فایل شما همون خطا ها رو باز میده نه تصاویر رو نشان میده و همین طور موقع ذخیره خطا میده.

davidrobert
پنج شنبه 13 فروردین 1394, 16:54 عصر
آقا Mohammadsgh (http://barnamenevis.org/member.php?280741-Mohammadsgh) فایل شما رو توسط یه سیستم دیگه دانلود کردم و دیدم ولی باز همون خطای های بالای که میده رو میده اطلاعات رو ذخیره ولی بعد خطا میده و تصاویر رو هم نمایش نمیده خطا میده مثل تاپیک اول که گفتم.

amin1softco
پنج شنبه 13 فروردین 1394, 17:19 عصر
برای اینکه php خطا ها را نمایش نده می تونید از علامت @ در زمان گرفتن ورودی استفاده کنید !

Mohammadsgh
پنج شنبه 13 فروردین 1394, 22:08 عصر
استفاده از @ کار درستی نیست.باید با if و isset رفع خطا کنید

amin1softco
پنج شنبه 13 فروردین 1394, 22:12 عصر
اگر واقعاً می خواهید اصولی کد بزنید که اصلاباید یک کلاس تعریف کنید داخل اون کلاس تابعی مشابه کد زیر بنویسید برای پالایش و دریافت ورودی!


<?php
private function PostInputs()
{
$args = array(
'user' => FILTER_SANITIZE_STRING,
'password' => FILTER_SANITIZE_STRING,
'image' => FILTER_VALIDATE_URL
.
.
.
);

$inputs = filter_input_array(INPUT_POST, $args);
if (!$inputs) {
throw Exception("Problem Filtering the inputs");
}

return $inputs;
}
//برای استفاده هم اینو می نویسید
$this->inputs['user']