Mohammed Aladimi نشر 7 نوفمبر 2020 أرسل تقرير نشر 7 نوفمبر 2020 (معدل) السلام عليكم ورحمة الله وبركاتة ممكن مساعدة بعد إذنكم Warning: in_array() expects parameter 2 to be array, null given in C:\xampp\htdocs\post\admin\login.php on line 44 تم التعديل في 7 نوفمبر 2020 بواسطة عبود سمير تعديل العنوان اقتباس
0 Wael Aljamal نشر 7 نوفمبر 2020 أرسل تقرير نشر 7 نوفمبر 2020 مرحبا محمد، السبب انك تستعمل الدالة mysqli_fetch_assoc في السطر 42 وهي تعيد النتائج على شكل associative array ومن ثم الخطأ سببه استعمال نمط مصفوفة مخالف لما يمكن للتابع in_array أن يمرر له (حيث يجب ان نمرر له array عادية) الفرق array يكون دليل العنصر هو موقعه مثال 0,1,2,3 مثال $a = array(5,7,1); $a[0] => 5 $a[1] => 7 $a[2] => 1 أما associative array يكون دليل العنصر هو سلسلة نصية "moh","hello","1" و هكذا.. مثال $a = ["hello"=>"world"]; $a["hello"] // => world لنصل للبيانات ضمن associative array كماالحال في الشيفرة لديك عليك وضع اسم الحقل مكان دليل العنصر $row[$AdminMail]; هكذا لنعرف سبب الخطأ نقوم بطباعة المتحولات التي لدينا و التأكد من قيمها فعليك طباعة المتحول row لتفهم المشكلة بشكل أفضل.. لفهم افضل عن أنماط المصفوفات في php قم بالبحث في غوغل عن php array vs associative array اقتباس
0 سمير عبود نشر 7 نوفمبر 2020 أرسل تقرير نشر 7 نوفمبر 2020 مرحباً @Mohammed Aladimi السبب هنا هو أن دالة in_array تنتظر منك تمرير مُعاملين الأول هو العنصر الذي تريد البحث عنه و الثاني هو المصفوفة في حين أنه هنا لم يتم تمرير مصفوفة بل null و هذا يعني أن المتغير row يساوي null. أنصحك دائماً بإستخدام ما يُسمى بال prepared statments و parameterized queries للحماية من ثغرة sql injection و هذا سواء كنت تستخدم دوال ال mysqli أو PDO فمثلاً في حالة إستخدام mysqli سيكون الكود مشابه للشكل التالي: <?php $stmt = $conn->prepare("SELECT id from admin where email = ? AND password = ?"); // prepare the query $stmt->bind_param('ss', $adminMail, $adminPass); $stmt->execute(); $stmt->bind_result($id); if ($stmt->fetch()) { echo "success"; $_SESSION['login_admin_id'] = $id; // save id in session // redirect to admin panel } else { $error = "Email or Password is incorrect"; } كما بإمكانك أيضاً إستخدام PDO بالتوفيق. اقتباس
0 Mohammed Aladimi نشر 7 نوفمبر 2020 الكاتب أرسل تقرير نشر 7 نوفمبر 2020 شكرا جزيلا اخي الكريم اقتباس
السؤال
Mohammed Aladimi
السلام عليكم ورحمة الله وبركاتة
ممكن مساعدة بعد إذنكم
Warning: in_array() expects parameter 2 to be array, null given in C:\xampp\htdocs\post\admin\login.php on line 44
تعديل العنوان
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.