المشاركات : 185
المواضيع 52
الإنتساب : May 2017
السمعة :
4
الشكر: 150
تم شكره 101 مرات في 63 مشاركات
البلد:
السلام عليكم الاخوة الاعزاء
اخوتي
عندي هذا الكود في رفع صورة الى قاعدة البيانات ولكن لا اعرف السبب لا يتم الرفع اتمنى منكم المساعدة في تصحيح الكود ومتابعته ان كان هنالك خطا فيه
اخوكم فراس الغزي
الكود
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"هنالك مشكلة في عملية الاضافة"; } } } ?>
(( لا أحد يمكن له ان يحدد متى يموت ولكن هو من يقدر ان يحدد كيف يعيش بعد الموت فالحياة والمماة بيد الله لكن حياتك بعد الموت بيدك فلا تندم على شيء فاتك في الدنيا لربما يرزقك الله خير منه في الاخرة او لربما دفع الله عنك به شيأ اعظم ... تلك هي مشيئة الله عز وجل ))
المشاركات : 705
المواضيع 20
الإنتساب : Oct 2012
السمعة :
184
الشكر: 994
تم شكره 1811 مرات في 688 مشاركات
وعليكم السلام
تحقق من الوظيفة 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__)
المشاركات : 185
المواضيع 52
الإنتساب : May 2017
السمعة :
4
الشكر: 150
تم شكره 101 مرات في 63 مشاركات
البلد:
(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,816
المواضيع 36
الإنتساب : Mar 2014
السمعة :
707
الشكر: 7238
تم شكره 6580 مرات في 3255 مشاركات
وعليكم السلام ورحمة الله وبركاته
حتى لا تدخل لنفسك الى متاهة
تم التعديل الكود كاملاً وليعمل معك بصورة افضل وبدون اى اخطاء
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 فكل ما عليك فعله استخدام . واحدة بدلاً من .. اثنين
تحياتى لك
وتمنياتى لك التوفيق
|