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

warning: trying to access array offset on value of type bool in sql.php on line 195

السؤال

نشر

سلام عليكم .. يظهر هذا الخطأ أثناء التصفح يظهر في خلفية الصفحات ويختفي سريعا ، علماً بأن الفانكشن لا تؤدي وظيفتها وهي حظر المستخدم

اقتباس

warning: trying to access array offset on value of type bool in sql.php on line 195

 /*--------------------------------------------------------------*/
  /* Function for checking which user level has access to the page
  /*--------------------------------------------------------------*/
   function page_require_level($require_level){
     global $session;
     $current_user = current_user();
     $login_level = find_by_groupLevel($current_user['user_level']);
     //if user not login
     if (!$session->isUserLoggedIn(true)):
            $session->msg('d','Please Sign in');
            redirect('index.php', false);
      //if Group status Deactive
     elseif($login_level['group_status'] === '0'):  //Line 195
           $session->msg('d','User Banned');
           redirect('home.php',false);
      //checking logged in User level and Require level is Less than or equal to
     elseif($current_user['user_level'] <= (int)$require_level):
              return true;
      else:
            $session->msg("d", "Error");
            redirect('home.php', false);
        endif;

     }

 

Recommended Posts

  • 0
نشر

الخطأ يحدث عندما يتم محاولة الوصول إلى مؤشر مصفوفة على قيمة من نوع boolean (bool)، وهو ما يشير إلى وجود مشكلة في الكود في السطر 195 من ملف sql.php. وربما الخطأ مرتبطًا بتنفيذ الدالة find_by_groupLevel() التي لا يتم فيها إرجاع مصفوفة من قاعدة البيانات كما هو متوقع، وبدلاً من ذلك يتم إرجاع قيمة boolean.

لحل هذه المشكلة، يجب التحقق من مدى صحة وعملية تنفيذ دالة find_by_groupLevel() والتأكد من عودتها بالمخرجات المتوقعة، وإذا كان هذا هي المشكلة، فيجب إجراء التعديلات اللازمة على الدالة لإصلاحها. كما يمكن استخدام دالة var_dump() لفحص مخرجات الدالة ومعرفة ما إذا كانت تعود قيمة boolean أو مصفوفة كما هو متوقع.

  • 0
نشر

الخطأ يشير إلى أن البرنامج يحاول الوصول إلى عنصر في مصفوفة بناءً على قيمة boolean (true أو false) في السطر 195 من ملف "sql.php". ويبدو أن الخطأ يحدث عندما يكون حالة المجموعة التي ينتمي إليها المستخدم المسجل "غير فعالة" (بمعنى أن المستخدم محظور). ولهذا السبب، يتم إعطاء رسالة خطأ وإعادة توجيه المستخدم إلى الصفحة الرئيسية.

إذا كانت الوظيفة التي يتم استدعاؤها في هذا الملف غير تؤدي وظيفتها، فمن المحتمل أن يكون هناك خطأ في ملفات أخرى تتعلق بتسجيل الدخول وتسجيل الخروج وإدارة الصفحات. يوصى بفحص ملفات الشفرة المصدرية الأخرى للتأكد من أن جميع الوظائف تعمل بشكل صحيح.

يجب عليك إجراء التالي:

  1. التحقق من الوظائف الأخرى المرتبطة بعملية تسجيل الدخول والخروج وإدارة الصفحات للتأكد من عدم وجود أخطاء.
  2. التأكد من أن المتغير $login_level يتم تعيين قيمة معقولة في الدالة find_by_groupLevel() وأنه لا يحتوي على قيمة boolean.
  3. تغيير هذا السطر:
    elseif($login_level['group_status'] === '0'):

    ليصبح كالتالي:

    elseif(isset($login_level['group_status']) && $login_level['group_status'] === '0'):

    هذا التغيير يضمن أنه سيتم فحص ما إذا كانت $login_level['group_status'] موجودة وتحتوي على قيمة "0"، وبالتالي يتم تجنب خطأ الوصول إلى عنصر في مصفوفة بناءً على قيمة boolean.

    بعد التغيير، يجب تجربة الصفحة مرة أخرى والتأكد من أن الخطأ لم يعد يظهر.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...