ورود

View Full Version : سوال: آپلود عکس همراه چند فیلد دیگر



css-man
سه شنبه 21 شهریور 1391, 13:14 عصر
یه فرم دارم که قراره خبر ارسال کنه تو دیتابیس
یه فیلد این فرم آپلود عکسه
من شرط گذاشتم واسه هر فیلدم اگه خالی نبود بریزه تو یه متغیر
این فیلد عکس رو هم شرط گذاشتم اگر خالی نبودکار های زیر اجرا بشه


if(!empty($_POST['pic']))
{
$name=$_FILES['pic']['name'];
}


این خط اصلا اجرا نمیشه چی کار باید بکنم؟؟

css-man
سه شنبه 21 شهریور 1391, 13:20 عصر
الان اینجوری چکش کردم و قسمت else اجرا شد



if(isset($_POST['pic']))
{
$name=$_FILES['pic']['name'];
echo $name;
}else
{
echo "the fild is not set";
}

Reza1607
سه شنبه 21 شهریور 1391, 14:02 عصر
بايد به اين صورت عمل كنيد
if(isset($_FILES['pic']))

css-man
سه شنبه 21 شهریور 1391, 14:14 عصر
بايد به اين صورت عمل كنيد
if(isset($_FILES['pic']))

همین کار رو کردم

حلا از 2 خط دیگه ایراد میگیره که اصلا نمیدونم ایرادش چیه

از حلقه foreach
و errore بخش text

والا نمی دونم چرا اینجوری میکنه
اعصابمو خورد کرده لامصب




<?php
include_once("../../include/config.php");
?>
<form action="" method="post" enctype="multipart/form-data">
<fieldset>
<legend>فرم ارسال خبر جدید</legend>
<table width="466" height="226" >
<tr>
<td width="66">عنوان</td>
<td width="178">
<input type="text" name="title" /></td>
</tr>
<tr>
<td>عکس:</td>
<td><input type="file" name="pic" /></td>
</tr>
<tr>
<td>متن خبر:</td>
<td>
<textarea name="text" cols="45" rows="5"></textarea></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="ارسال خبر" /></td>
</tr>
</table>
</fieldset>
</form>
<?php
if(isset($_POST['submit']))
{
echo "the submit is pushed<br>";
$error=array();
if(!empty($_POST['title']))
{
$title=$_POST['title'];

}else
{
$error[]="لطفا یک عنوان برای خبر انتخاب کنید";
}
if(isset($_FILES['pic']['name']))
{
$name=$_FILES['pic']['name'];
$tmp=$_FILES['pic']['tmp_name'];
$type=$_FILES['pic']['type'];
$size=$_FILES['pic']['size'];
$error=$_FILES['pic']['error'];


}else
{
$error[]="the fild is not set";
}
if(!empty($_POST['text']))
{
$text=$_POST['text'];


}else
{
$error[]='لطفا یک عنوان برای خبر انتخاب کنید';

}
if(empty($error))
{
move_uploaded_file($tmp,"../picnews/".$name);
echo $name;
$q="INSERT INTO `news` VALUES (NULL,$title,$name,$text)" or die(mysql_error($q));
$r=mysql_query($q,$link);
if($r)
{
echo "خبر شما در دیتابس درج شد";
}
}//if error
else
{
foreach($error as $val)
{
echo $val."<br>";
}
}//else error


}//isset

Reza1607
سه شنبه 21 شهریور 1391, 15:21 عصر
كوئري مشكل داره مقدارهاي رشته اي داخل ' نيست

css-man
سه شنبه 21 شهریور 1391, 15:43 عصر
مرسی درست شد هرچی نگاه میکردم متوجه این غلط نمی شدم
واقعا ممنون

حالا یه مشکل دیگه ای هست اونم اینه که میخوام موقع نمایش اطلاعات خبر عکس هم نمایش داده بشه ولی عکس رو نمایش نمیده

اینم کدم




$q="SELECT * FROM `news` ORDER BY `id`DESC ";
$result=mysql_query($q,$link);
while($rows=mysql_fetch_assoc($result))
{
$path="../picnews/".$rows['pic'];
?>
<div id="news">
<div id="pic"><img src="<?php echo $path; ?>" alt="" /></div>
<div id="title"><?php echo $rows['title']; ?></div>
<div id="text"><?php echo $rows['news']; ?></div>
</div><!--news-->
<?php
}
?>

css-man
سه شنبه 21 شهریور 1391, 15:51 عصر
كوئري مشكل داره مقدارهاي رشته اي داخل ' نيست

درستش کردم و به این شکل تغییرش دادم



if(empty($error))
{
move_uploaded_file($tmp,"../picnews/".$name);

$q="INSERT INTO `news` (id,title,pic,news) VALUES (NULL,'$title','$name','$text')" or die(mysql_error($q));
$r=mysql_query($q,$link);
if($r)
{
echo "خبر شما در دیتابس درج شد";
}
}//if error
else
{
foreach($error as $val)
{
echo $val."<br>";
}
}//else error


}//isset




الان اگر همه چیز درست باشه مشلی نداره ولی اگر ارور داشته باشم از حلقه foreach ایراد میگیره و ارور ها رو نشون نمیده

Reza1607
سه شنبه 21 شهریور 1391, 16:18 عصر
كد درسته مشكل از آدرس دهي غلط هستش به سورس صفحه يه نكاه بندازين ببينيد آدرس عكس جيه و بعد بررسي كنيد كه اين ادرس وجود داره يا نه

Reza1607
سه شنبه 21 شهریور 1391, 16:22 عصر
اين قسمت رو به صورت
foreach($error as $val)
{
echo $val."";
}

زير تغير بدين
if($isset($error))
foreach($error as $val)
{
echo $val."";
}

css-man
سه شنبه 21 شهریور 1391, 17:01 عصر
اين قسمت رو به صورت
foreach($error as $val)
{
echo $val."";
}

زير تغير بدين
if($isset($error))
foreach($error as $val)
{
echo $val."";
}


باز هم همون ارور رو میده فرقی می کنه

css-man
سه شنبه 21 شهریور 1391, 18:08 عصر
كد درسته مشكل از آدرس دهي غلط هستش به سورس صفحه يه نكاه بندازين ببينيد آدرس عكس جيه و بعد بررسي كنيد كه اين ادرس وجود داره يا نه

هر طوری آدرس میدم باز نمیشه

سورس صفحه آدرس رو مینویسه که روش کلیک میکنم میگه وجود نداره