"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تتجنب أخطاء PHP \"فهرس غير محدد\" مع $_POST؟

كيف تتجنب أخطاء PHP \"فهرس غير محدد\" مع $_POST؟

تم النشر بتاريخ 2024-11-01
تصفح:297

How to Avoid PHP \

PHP فهرس غير محدد مع $_POST [Duplicate]

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

يوضح الكود المبسط المشكلة:

$user = $_POST["username"];
if($user != null)
{
    echo $user;
    echo " is your username";
}
else
{
    echo "no username supplied";
}

بينما يعمل الرمز كما هو متوقع عند وجود اسم مستخدم، فإنه يفشل مع ظهور الخطأ "فهرس غير محدد: اسم المستخدم" عندما لا يتم توفير أي شيء. يحدث هذا لأن $_POST لا يحتوي على مفتاح "اسم المستخدم" عندما لا يتم إرسال أي بيانات.

لحل هذه المشكلة، استخدم عامل التشغيل isset() للتحقق من وجود متغير أو عنصر صفيف قبل الوصول إليه. بهذه الطريقة، يتم منع حدوث الخطأ قبل محاولة استرداد القيمة.

if (isset($_POST["username"]))
{
    $user = $_POST["username"];
    echo "$user is your username";
}
else
{
    $user = null;
    echo "no username supplied";
}

في هذا الكود المحدث، تضمن isset() وجود مفتاح "اسم المستخدم" في $_POST قبل تعيين قيمته إلى $user. يؤدي هذا إلى التخلص من خطأ وقت التشغيل ويسمح لك بالتعامل مع حالة اسم مستخدم فارغ بشكل صحيح.

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

بيان الافراج أعيد طبع هذه المقالة على: 1729211175 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3