PDA

View Full Version : مشکل یک کد



mehdiv
یک شنبه 24 دی 1391, 04:21 صبح
سلام
دوستان من یه مشکل عجیب دارم
این فایل توی لوکال کار میکنه اما توی هاست کار نمیکنه
نمیدونم چرا


<?php
session_start();
$conn = mysql_connect("localhost","root","");
$db = mysql_select_db("students");
$target="../images/uploads";
$size=10000000;
$format=array("image/gif","image/jpeg","image/pjpeg","image/png");

$text = $_REQUEST['text'];
if($text=="")
die('نامتان را وارد نکردید');

if($_FILES['uploadedfile']['error']==0){

if(in_array($_FILES['uploadedfile']['type'],$format)){
if($_FILES['uploadedfile']['size']<=$size){
$des=$_FILES['uploadedfile']['name'];
if(file_exists($des)){
$i=0;
$name=pathinfo($des);
while(file_exists($des))
$des="$target/".$name['filename']."_".(++$i).".".$name['extension'];
}

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$des)){
echo "فایل اپلود شد";
mysql_query("INSERT INTO slider (`url`,`text`) VALUES ('$des' ,'".$_POST['text']."')")or die(mysql_error());

}



}else
echo "حجم فایل زیاد است";




}else
echo "نوع فایل مورد قبول نمی باشد";



}else
echo "لطفا فایل خودتان را انتخاب کنید";




?>

nsco_nsco
یک شنبه 24 دی 1391, 04:42 صبح
سلام ارور چی میدهد؟

nsco_nsco
یک شنبه 24 دی 1391, 04:42 صبح
به احتمال زیاد مشکلت با فایل php.ini سرور می باشد

mehdiv
یک شنبه 24 دی 1391, 04:58 صبح
والا ارور خاصی نمیده فایل رو انتخاب میکنم بعد از ارسال صفحه سفید میاد اما تو لوکال اینطوری نیست

siavashsay
یک شنبه 24 دی 1391, 11:05 صبح
به قول دوسمتون اگر توی لوکال کار میکنه و در هاست نه احتمال زیاد مشکل از php.ini هست !
در مورد قضیه بعد ! شاید بی ربط باشه !
اما کدتون رو تصحیح کنید برای امنیت بیشتر ! سعی کنید به چک کردن type ( پسوند ) فایلها بسنده نکنید ! چون میشه فایل رو با پسوندی مثل
image.php.png آپلود کرد بروی سایت !
در اینجا کد شما png رو قبول میکنه و بعد اون کسی که فایل رو آپلود کرده با اجرا کردن اون عکس یک اسکپریت رو اجرا میکنه !
برای جلوگیری از اینکار 2 راه هست که بهتره از هر 2 استفاده شه !
1- تغییر نام فایل بعد از آپلود کردن !
2- استفاده از نوع MIME فایل !
--
در روش اول بعد از تغییر نام .php حذف میشه ( یعنی باید حذف کنید ) و فقط .png رو اعمال کنید !
در روش دوم هم سیستم چک میکنه اگر نوع MIME فایل یک فایل عکس و یا گرافیکی بود آپلود میکنه ! نه اینکه به TYPE فایل اعتماد کنید :)
موفق باشید !

mtchabok
یک شنبه 24 دی 1391, 12:03 عصر
سلام

ini_set('display_errors', 1);
این کد رو در ابتدای کدتون قرار بدین و خطا رو برامون بزارید

mehdiv
یک شنبه 24 دی 1391, 14:37 عصر
سلام مجدد
دوستان ارور خاصی نمیده میشه یه کد که تو همین مایه ها باشه بدید اونو امتحان کنم
توجه کنید
این کد عکس رو تو پوش ذخیره میکنه توی دیتابیس هم اسم عکس رو میزنه
به اضافه یه متن

siavashsay
یک شنبه 24 دی 1391, 17:29 عصر
این کد عکس رو تو پوش ذخیره میکنه توی دیتابیس هم اسم عکس رو میزنه
به اضافه یه متن
خوب اگه هم عکس رو توی پوشه ذخیره و آدرس رو هم توی دیتابیس میذاره دیگه مشکل کجاس ؟!

mehdiv
یک شنبه 24 دی 1391, 20:15 عصر
دوست عزیز گفتخم که این کد تو هاست کار نمیکنه

Borland.C
یک شنبه 24 دی 1391, 20:44 عصر
این قسمت کدت رو اینجوری تست کن ببین مشکل چیه؟بقیه موارد خطاها لحاظ شده
if($_FILES['uploadedfile']['error']==0){

به این صورت خطا ها رو تست کن

foreach ($_FILES["uploadedfile"]["error"] as $key => $error) {
if ($error ==

چک کن مقدار 7یا8 بر نمی گرده؟
شاید مشکل از perm پوشت باشه

mehdiv
یک شنبه 24 دی 1391, 23:51 عصر
سلام
پرم پوشه ها رو هم عوض کردم زدم 777 بازم نشد

Borland.C
دوشنبه 25 دی 1391, 09:41 صبح
کد هیچ مشکلی نداره
رو هاست هم تست کردم
آدرس تست کدت رو براتون پ.خ می کنم تست کنید
البته حجم فایل رو محدود کردم
موفق باشید

Reza1607
دوشنبه 25 دی 1391, 10:56 صبح
والا ارور خاصی نمیده فایل رو انتخاب میکنم بعد از ارسال صفحه سفید میاد اما تو لوکال اینطوری نیست
تنظيمات كانكشن ديتابيس رو كه درست وارد مي كنيد؟:متفکر:

mehdiv
دوشنبه 25 دی 1391, 14:50 عصر
آره درست وارد میکنم

Borland.C
دوشنبه 25 دی 1391, 18:00 عصر
آره درست وارد میکنم
جسارت نشه مهدی جان فقط جهت یادآوری می گم وگرنه مطمئنم که رعایت کردی
اگه کانکشن دقیقا اینجوری باشه کار نمی کنه ها!

mysql_connect("localhost","root","");

کاربری root روی هاست بستس:چشمک:

mehdiv
سه شنبه 26 دی 1391, 00:29 صبح
بابا دیگه اینقدر هم بی عقل نیستم
اطلاعات هاست رو وارد کردم

mtchabok
سه شنبه 26 دی 1391, 12:31 عصر
سلام
شما باید نمایش خطا رو فعال کنید تا خطا رو بررسی کنیم .
حتما خطایی داده میشه که هیچ چیزی برای شما ارسال نمیشه .
فقط در دو حالت هست که هیچ چیزی برای مرورگر ارسال نمیشه :
- یکی اینکه اصلا خودتون هیچ چیزی رو برای مرورگر ارسال نکرده باشید .
- مورد دوم هم اینه که خطایی ایجاد شده باشه و نمایش خطا غیرفعال باشه .