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 بواسطة عبود سمير تعديل العنوان اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 بالتوفيق. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Mohammed Aladimi نشر 7 نوفمبر 2020 الكاتب أرسل تقرير مشاركة نشر 7 نوفمبر 2020 شكرا جزيلا اخي الكريم اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
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
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.