اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

مرحبا محمد، 

السبب انك تستعمل الدالة 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
نشر

مرحباً @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

بالتوفيق.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...