المشاركات : 186
المواضيع 53
الإنتساب : May 2017
السمعة :
4
الشكر: 151
تم شكره 102 مرات في 64 مشاركات
السلام عليكم الاخوة الاعزاء
اخوتي
عندي هذا الكود في رفع صورة الى قاعدة البيانات ولكن لا اعرف السبب لا يتم الرفع اتمنى منكم المساعدة في تصحيح الكود ومتابعته ان كان هنالك خطا فيه
اخوكم فراس الغزي
الكود
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"هنالك مشكلة في عملية الاضافة"; } } } ?>
(( لا أحد يمكن له ان يحدد متى يموت ولكن هو من يقدر ان يحدد كيف يعيش بعد الموت فالحياة والمماة بيد الله لكن حياتك بعد الموت بيدك فلا تندم على شيء فاتك في الدنيا لربما يرزقك الله خير منه في الاخرة او لربما دفع الله عنك به شيأ اعظم ... تلك هي مشيئة الله عز وجل ))
المشاركات : 813
المواضيع 24
الإنتساب : Oct 2012
السمعة :
228
الشكر: 1145
تم شكره 2171 مرات في 815 مشاركات
وعليكم السلام
تحقق من الوظيفة 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__)
المشاركات : 186
المواضيع 53
الإنتساب : May 2017
السمعة :
4
الشكر: 151
تم شكره 102 مرات في 64 مشاركات
(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>";
}
}
(( لا أحد يمكن له ان يحدد متى يموت ولكن هو من يقدر ان يحدد كيف يعيش بعد الموت فالحياة والمماة بيد الله لكن حياتك بعد الموت بيدك فلا تندم على شيء فاتك في الدنيا لربما يرزقك الله خير منه في الاخرة او لربما دفع الله عنك به شيأ اعظم ... تلك هي مشيئة الله عز وجل ))
المشاركات : 3,815
المواضيع 36
الإنتساب : Mar 2014
السمعة :
724
الشكر: 7238
تم شكره 6709 مرات في 3265 مشاركات
وعليكم السلام ورحمة الله وبركاته
حتى لا تدخل لنفسك الى متاهة
تم التعديل الكود كاملاً وليعمل معك بصورة افضل وبدون اى اخطاء
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 الذى لا يحتوى على تعرف قيمة من الاساس
بالنهاية قم بالتجربة وابشر بما تم معك
تذكر ثم تذكر ثم تذكر : ملحوظة
بحصوص هذا الجملة
لنقول ان مسار مجلد البرمجة على المسار التالى
كود :
www/testupimg/test.php
عند اتمام رفع الصورة يعنى انه يريد ان يري المجلد بهذا المسار
وعدم تمكنه من روئية المجلد او المسار كما تم التوضيح سيفشل اتمام رفع الصورة
وقد تجد البيانات تم تسجيلها بقاعدة البيانات بينما الصورة لم ترفع بعد بسبب المسار حطاء
اذا كان مجلد الـ upload بنفس مسار ملف php فكل ما عليك فعله استخدام . واحدة بدلاً من .. اثنين
تحياتى لك
وتمنياتى لك التوفيق
|