في محاولة إنشاء اتصال بقاعدة البيانات، واجهت مشكلة حيث لم يتم عرض رسالة الخطأ المخصصة التي حددتها يتم عرضها عند فشل الاتصال. أنت تبحث أيضًا عن طريقة لقمع رسائل الخطأ من عرض المستخدم.
بدءًا من PHP 8.1، يقوم ملحق mysqli الآن تلقائيًا بطرح الاستثناءات في حالة حدوث خطأ خطأ، مما يلغي الحاجة إلى معالجة الأخطاء يدويًا كما حدث في الإصدارات السابقة من PHP.
لم يعد يوصى برسائل الخطأ المخصصة، مثل تلك التي حددتها، معالجة الأخطاء. يتمتع كل من PDO وmysqli بالقدرة على إظهار الأخطاء تلقائيًا، تمامًا مثل أي أمر PHP آخر. ولذلك، فإن التحقق يدويًا من الأخطاء، كما حاولت القيام به مع مقطع if (!$conn)، أصبح قديمًا.
لمنع رسائل الخطأ من الوصول إلى المستخدم ، يجب عليك استخدام خيار تكوين Display_errors، والذي يمكن ضبطه على 0 لمنع كل الأخطاء الناتجة. يمكن تكوين ذلك في ملف php.ini أو مباشرة في كود PHP الخاص بك:
ini_set('display_errors', 0);
بدلاً من عرض رسائل خطأ مشفرة، يُنصح بتقديم صفحة خطأ سهلة الاستخدام لزوار الموقع. يمكن تحقيق ذلك عن طريق إعداد معالج الأخطاء، مثل المعالج أدناه، والذي سيكتشف جميع الأخطاء غير القابلة للاسترداد:
set_exception_handler(function ($e)
{
error_log($e);
http_response_code(500);
if (ini_get('display_errors')) {
echo $e;
} else {
echo "<h1>500 Internal Server Error</h1>\nAn internal server error has been occurred.<br>\nPlease try again later.";
}
});
إذا كنت بحاجة إلى معالجة أخطاء اتصال قاعدة البيانات على وجه التحديد، فيمكنك استخدام برنامج نصي منفصل لاختبار الاتصال مغلف في كتلة محاولة الالتقاط، منفصلة عن البرنامج النصي العادي الخاص بك. رمز الاتصال.
لتعزيز الأمان، قم بتحديث إصدار PHP الخاص بك إلى 8.2 أو الأحدث، والذي يحجب كلمات مرور قاعدة البيانات من الظهور في تتبع المكدس.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3