شرح لدوال الخطاء error_reporting وكيفية التحكم بظهورها
السلام عليكم ورحمة الله وبركاته
في تجولي في الأنترنت وجدت هذا الموضوع وهو يتحدث عن تقارير الأخطاء في البرمجة ...
أترككم مع الموضوع ...
------------------
Error Reporting
يعتبر ايضا من المفاتيح السحرية لاختراق برنامجك ،فيجب عليك قبل نشر برنامجك او استخدامه على لايف سيرفر ان تقوم بإلغاءالابلاغ عن الاخطاء تماما ، وان تكتفى بملف ال Log فقط لمتابعة الاخطاء التى قد تكون نتجت.
طبعا ظهور خطأ فى برنامجك يؤدى الى كشف مناطق ضعف برنامجك واتاحة البيانات الهامة للمبرمجين المحترفين
وللتحكم فى ظهور الاخطاء اثناء تنفيذ البرنامج يتم ذلك عن طريق استخدام الدالة error_reporting()
ولهذه الدالة العديد من المستويات ، فالخطأ فى لغة ال PHP ينقسم الى :
1- خطأ قبل البدء فى معالجة الكود startup error (المفتاح E_CORE_ERROR)
2- خطأ املائى parsing error (المفتاح E_ERROR)
3- خطأ تحذيرىwarning (المفتاح E_WARNING)
4- خطأ تنبيهى notice (المفتاح E_NOTICE)
ولقد قمت بترتيبهم على حسب الاهمية
وهذا اختصار لشرح استخدامها
وتستخدم الدالة error_reporting عن طريق تمرير مفتاح الخطأ لها
فمثلا اذا كنت تريد عرض التنبيهات فقط استخدم المثال التالىاما اذا اردت عدم عرض التنبيهات فيجب ان تسبق المفتاح برمز التشديد فى اللغة العربيةكود PHP:error_reporting(E_NOTICE);
shift + ذ
كما فى المثال التالىوبالمثل يمكنك التطبيق على باقى المستوياتكود PHP:error_reporting(~E_NOTICE); // لاحظ حرف ~ قبل المفتاح
ولكن ماذا اذا اردت الجمع بين مفتاحين يعنى مثلا تريد عرض الاخطاء الاملائية ولا تعرض التحذيرات ؟
يمكنك عمل هذا بالفصل بين المفاتيح برمز الانبوب PIPE او العصا | فهذا الرمز يمثل عمل حرف " و "
المثال التالى يعرض الاخطاء الاملائية E_ERROR ( و ) لا يعرض الاخطاء التنبيهية E_NOTICEولكن ايضا ماذا اذا اردت ان امنع ظهور كل الاخطاء ؟ هل يجب ان اكتب كل مفاتيح الاخطاء ؟؟؟كود PHP:error_reporting(E_ERROR|~E_NOTICE);
بالطبع لا ، فالمفتاح E_ALL يرمز لاتاحة كل الاخطاء والمفتاح ~E_ALL يرمز لمنع كل الاخطاء ( لاحظ الشدة)
خلاصة الموضوع انك حينما ترفع برنامجك للعمل على السيرفر يجب ان تمنع كل انواع الاخطاء من الظهورايضا هناك انواع اخطاء كثيرة وليست فقط التى ذكرتها ، ولكنها لن تفيدك فلا داعى للاطالةكود PHP:error_reporting(~E_ALL);//اوerror_reporting( 0); // نفس عمل ~E_ALL
رابط الموضوع الأصلي
0 تعليقات على " افتراضي شرح لدوال الخطاء error_reporting وكيفية التحكم بظهورها "