تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[كود] مشكلة مدوختني
#1
السلام  عليكم  الاخوة  الاعزاء  

  اخوتي  
  عندي  هذا الكود  في  رفع صورة الى قاعدة  البيانات  ولكن لا  اعرف  السبب  لا يتم  الرفع  اتمنى  منكم  المساعدة  في  تصحيح  الكود  ومتابعته ان  كان  هنالك  خطا فيه  

  اخوكم  فراس  الغزي  

الكود

 
PHP كود :
<?
   if
($_POST['addpro']){
   
   $pro_code
=$_POST['pro_code'];
   $pro_name=$_POST['pro_name'];
   $pro_price=$_POST['pro_price'];
   $pro_diacount=$_POST['pro_diacount'];
   $pro_num=$_POST['pro_num'];
  
   $pro_date
=time();
   $pro_dic=$_POST['pro_dic'];
   $pro_color=$_POST['pro_color'];
   $com_code=$_POST['com_code'];


    $fileName $_FILES['pro_img']['name'];
    $fileSize $_FILES['pro_img']['size'];
    $fileTmpName  $_FILES['pro_img']['tmp_name'];
    $fileType $_FILES['pro_img']['type'];
   
    $currentDir 
getcwd();
    $uploadDirectory "../upload/";
$errors "";
    $fileExtension strtolower(end(explode('.',$fileName)));

    $uploadPath $currentDir $uploadDirectory basename($fileName); 
 

        
if ($fileSize 20000000) {
            $errors[] = "This file is more than 2MB. Sorry, it has to be less than or equal to 2MB";
        }

        if (empty($errors)) {
            $didUpload move_uploaded_file($fileTmpName$uploadPath);

            
        
       
 

$insert
=mysql_query("INSERT INTO `projacte` (``, `pro_code`, `pro_name`, `pro_price`, `pro_diacount`, `pro_num`, `pro_cat`, `pro_date`, `pro_dic`, `pro_img`, `pro_color`, `com_code`) VALUES  (
pro_code='
$pro_code',
pro_name='
$pro_name',
pro_price='
$pro_price',
pro_diacount='
$pro_diacount',
pro_num='
$pro_num',
pro_date='
$pro_date',
pro_dic='
$pro_dic',
pro_color='
$pro_color',
com_code='
$com_code',
pro_color='
$image'
)"
);
if(
$insert){
echo
"<div class='alert-success'>تم اضافة  المنتج بنجاح </div>";
}else{
echo
"هنالك مشكلة في عملية الاضافة"
}
}
 
    
}
   ?>   
((  لا أحد يمكن له  ان يحدد متى يموت ولكن هو  من يقدر  ان يحدد  كيف يعيش بعد الموت فالحياة والمماة بيد الله  لكن  حياتك بعد الموت بيدك  فلا  تندم  على شيء فاتك في الدنيا لربما يرزقك  الله  خير  منه في  الاخرة  او لربما  دفع الله  عنك به  شيأ  اعظم  ...  تلك  هي  مشيئة الله  عز  وجل )) 
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام 


تحقق من الوظيفة move_uploaded_file , تأكد أنها تعود بالقيمة True
إذا كانت False فيعني هناك خطاء في صحة الملف
وإذا كان الملف صحيح ولكن حصل خطاء لأي سبب أيظاً ستعود بـ False مع رسالة خطأ




دقق على هذا الكود : ( هو نفس الموجود لديك ولكن وظعتة هنا للتركيز علية / أعتقد أنك لا تقوم بإنشاء المسار بالشكل الصحيح )
شكل المسار سيكون كالتالي 
/home/images../upload/fileName
لاحظ نقطتين في المسار بهذا الشكل طبعاً غير مقبول

كود :
   $fileName = $_FILES['pro_img']['name'];
   $fileSize = $_FILES['pro_img']['size'];
   $fileTmpName  = $_FILES['pro_img']['tmp_name'];
   $fileType = $_FILES['pro_img']['type'];
 
   $currentDir = getcwd();
   $uploadDirectory = "../upload/";
    $errors = "";
   $fileExtension = strtolower(end(explode('.',$fileName)));

   $uploadPath = $currentDir . $uploadDirectory . basename($fileName);


خصوصاً في هذين السطرين ( المشكلة لا أستطيع أن أجرب ) 
كود :
$currentDir = getcwd();
   $uploadDirectory = "../upload/";



إبحث عن طريقة غير الوظيفة getcwd ( طريقتها وتصرفها في جلب المسار - غبي )
مثلاً : 
كود :
dirname(__FILENAME__)
الرد }}}
تم الشكر بواسطة: فراس الغزي , elgokr
#3
(21-09-18, 10:44 PM)عبدالله الدوسري كتب : وعليكم السلام 


تحقق من الوظيفة move_uploaded_file , تأكد أنها تعود بالقيمة True
إذا كانت False فيعني هناك خطاء في صحة الملف
وإذا كان الملف صحيح ولكن حصل خطاء لأي سبب أيظاً ستعود بـ False مع رسالة خطأ




دقق على هذا الكود : ( هو نفس الموجود لديك ولكن وظعتة هنا للتركيز علية / أعتقد أنك لا تقوم بإنشاء المسار بالشكل الصحيح )
شكل المسار سيكون كالتالي 
/home/images../upload/fileName
لاحظ نقطتين في المسار بهذا الشكل طبعاً غير مقبول

كود :
   $fileName = $_FILES['pro_img']['name'];
   $fileSize = $_FILES['pro_img']['size'];
   $fileTmpName  = $_FILES['pro_img']['tmp_name'];
   $fileType = $_FILES['pro_img']['type'];
 
   $currentDir = getcwd();
   $uploadDirectory = "../upload/";
    $errors = "";
   $fileExtension = strtolower(end(explode('.',$fileName)));

   $uploadPath = $currentDir . $uploadDirectory . basename($fileName);


خصوصاً في هذين السطرين ( المشكلة لا أستطيع أن أجرب ) 
كود :
$currentDir = getcwd();
   $uploadDirectory = "../upload/";



إبحث عن طريقة غير الوظيفة getcwd ( طريقتها وتصرفها في جلب المسار - غبي )
مثلاً : 
كود :
dirname(__FILENAME__)

السلام  عليكم  

  كيفك  اخي  انا راجعت  الكود  وغيرت الفكرة  الغبية  الي  تحدثت  عنها  والان  قمت بكتباة  هذا الكود  ولكن  امبارح ضاف  عندي  مافي  اس  مشكلة  ولكن  الان يطلع  عندي  خطا  تطلع رسالة  الخطا  في  عملية  الاضافة  ولا  اعرف  السبب  راجعت الكود  مرارا  وتكرارا  ولكن  نفس  الشي  امس  كان شغال  طبيعي  واليوم لا  ولا  ادري  ما الذي  حصل  حتى  تظهر رسالة  الخطا  

  اتمنى  منك  اخي  المساعدة  

الكود  

 
PHP كود :
if($_POST['addpro']){
 
   
   $pro_code
=$_POST['pro_code'];
   $pro_name=$_POST['pro_name'];
   $pro_price=$_POST['pro_price'];
   $pro_diacount=$_POST['pro_diacount'];
   $pro_num=$_POST['pro_num'];
   $pro_cat=$_POST['pro_cat'];
   $pro_date=$_POST['pro_date'];
   $pro_dic=$_POST['pro_dic'];
   $pro_color=$_POST['pro_color'];
   $com_code=$_POST['com_code'];


   $pro_img $_FILES['pro_img']['name'];
   $target "../upload/".basename($pro_img);
       
 move_uploaded_file
($_FILES['pro_img']['tmp_name'], $target);
 
$insert 
mysql_query("INSERT INTO projacte
( pro_code, pro_name, pro_price, pro_diacount, pro_num, pro_cat, pro_date, pro_dic, pro_img, pro_color, com_code)
value
(
'
$pro_code',
'
$pro_name',
'
$pro_price]',
'
$pro_diacount',
'
$pro_num',
'
$pro_cat',
'
$pro_date',
'
$pro_dic',
'
$pro_img',
'
$pro_colo 
r',
'$com_code')
");

if($insert){
echo"<div class='alert-success'>تم اضافة  المنتج بنجاح </div>";
}else{
echo"<div class='alert-danger'>هنالك مشكلة في الاضافة </div>";
}
}
((  لا أحد يمكن له  ان يحدد متى يموت ولكن هو  من يقدر  ان يحدد  كيف يعيش بعد الموت فالحياة والمماة بيد الله  لكن  حياتك بعد الموت بيدك  فلا  تندم  على شيء فاتك في الدنيا لربما يرزقك  الله  خير  منه في  الاخرة  او لربما  دفع الله  عنك به  شيأ  اعظم  ...  تلك  هي  مشيئة الله  عز  وجل )) 
الرد }}}
تم الشكر بواسطة:
#4
وعليكم السلام ورحمة الله وبركاته

حتى لا تدخل لنفسك الى متاهة

تم التعديل الكود كاملاً وليعمل معك بصورة افضل وبدون اى اخطاء
PHP كود :
 if($_POST['addpro']){

 
   $pro_code=$_POST['pro_code'];
 
   $pro_name=$_POST['pro_name'];
 
   $pro_price=$_POST['pro_price'];
 
   $pro_diacount=$_POST['pro_diacount'];
 
   $pro_num=$_POST['pro_num'];
 
   $pro_date=time();
 
   $pro_dic=$_POST['pro_dic'];
 
   $pro_color=$_POST['pro_color'];
 
   $com_code=$_POST['com_code'];

 
 /* ----------- كود رفع الصورة ----------- */
 
   $allowedExts = array("gif""jpeg""jpg""png");
 
   $imgname $_FILES['file']['name'];
 
   $nameimg explode('.'$imgname);
 
   $extension end($nameimg);
 
   $nametime 'img-'.(time()+(3*60*60));
 
   if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg")
 
   || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png"))
 
   && ($_FILES["file"]["size"] <= 5242880) && in_array($extension$allowedExts)){
 
     if ($_FILES["file"]["error"]){
 
       /* يمكنك استخدام كود لاظهار الخطاء كما تشاء */
 
       echo"هنالك مشكلة في عملية الاضافة";
 
     }else{
 
       $upnameimg $nametime.".".$nameimg[1];
 
       $uptypeimg $_FILES["file"]["type"];
 
       $upsizeimg = ($_FILES["file"]["size"] / 1024);  // KB
 
       $uptmpeimg $_FILES["file"]["tmp_name"];
 
       if (file_exists("../upload/".$upnameimg)){
 
         /* يمكنك استخدام كود لاظهار الخطاء كما تشاء */
 
         /* والتحقق ده للتاكد بان اسم الملف بالمسار غير موجود */
 
         /* طبعاً انا بقوم باعادة التسمية الملف بالثواني فمن المستحيل حدوث هذا الخطاء وطباعته */
 
         echo"هنالك مشكلة في عملية الاضافة";
 
       }else{
 
         /*--- #Insert Data Mysql ---*/
 
         $insert=mysql_query("INSERT INTO `projacte` (`pro_code`, `pro_name`, `pro_price`, 
                                                       `pro_diacount`, `pro_num`, 
                                                       `pro_date`, `pro_dic`, `pro_img`, 
                                                       `pro_color`, `com_code`) 
                                                       VALUES  
                                                       ('"
.$pro_code."','".$pro_name."','".$pro_price."', 
                                                        '"
.$pro_diacount."', '".$pro_num."', 
                                                        '"
.$pro_date."', '".$pro_dic."', '../upload/".$upnameimg."', 
                                                        '"
.$pro_color."', '".$com_code."')
                              "
);    
          
/*--- @Insert Data Mysql ---*/
 
         if (isset($insert)){
 
           $moveokimg move_uploaded_file($uptmpeimg,"../upload/".$upnameimg);
 
           if ($moveokimg){
 
             echo"<div class='alert-success'>تم اضافة  المنتج بنجاح </div>";
 
           }
 
         }
 
       }
 
     }
 
   }else{
 
     /* يمكنك استخدام كود لاظهار الخطاء كما تشاء */
 
     echo"هنالك مشكلة في عملية الاضافة";
 
   }
 
 /* ----------- كود رفع الصورة ----------- */
 
 

كل معا عليك مراجعة سطر الـ
PHP كود :
$insert=mysql_query("INSERT INTO 

لمراجعة المسميات والبيانات المطلوب ادخالها
اى عمود تريد ان يكون فارغ او بدون قيمة لا تقوم بوضع اسمه 
كما سبق وكنت مستخدم عمود pro_cat الذى لا يحتوى على تعرف قيمة من الاساس

بالنهاية قم بالتجربة وابشر بما تم معك

تذكر ثم تذكر ثم تذكر : ملحوظة
بحصوص هذا الجملة
كود :
../upload/

لنقول ان مسار مجلد البرمجة على المسار التالى

كود :
www/testupimg/test.php

عند اتمام رفع الصورة يعنى انه يريد ان يري المجلد بهذا المسار

كود :
www/upload/

وعدم تمكنه من روئية المجلد او المسار كما تم التوضيح سيفشل اتمام رفع الصورة
وقد تجد البيانات تم تسجيلها بقاعدة البيانات بينما الصورة لم ترفع بعد بسبب المسار حطاء

اذا كان مجلد الـ upload بنفس مسار ملف php فكل ما عليك فعله استخدام . واحدة بدلاً من .. اثنين

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: عبدالله الدوسري



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم