1. المٌقدمة الأولي :دورة إختبار ثغرات حقن قواعد البيانات SQLI الإحترافية لعام 2017 عام 2018
    تٌعد ثغرات حقن قواعد البينات الثغرة رقم واحد فى العالم والمصنفة تحت بند الإخطر
    والفريق التابع له بإختراق أكبر المواقع الصهيونية قرائة الموضوع
  2. المٌقدمة الثانية : دورة إختبار ثغرات حقن قواعد البيانات SQLI الإحترافية لعام 2017 عام 2018
    في هذه المٌثقدمة الثانية والأخيرة سوف نتعرف على قواعد علم حقن قواعد البيانات
    حتى يتثنى لنا علم يٌساعدنا على القيام بعمليات الحقن بالطرق الصحيحه قرائة الموضوع
  3. دورة كشف دمج والتلغيم حصريا على أرض عراق تيم(2017)
    بعد ماقمت بعمل دورة الكشف دمج والتلغيم وستكملت الدوره وتحتوي على 12 درس
    كانت دروس حصريا على عراق تيم وشرح واضح جدا ومفهوم الى المبتدأ والى المبدع قرائة الموضوع

التعامل مع الأخطاء Error Handling

الموضوع في 'قسم البرمجة العام' بواسطة morris worm, بتاريخ ‏23 ابريل 2014.

كاتب الموضوع : morris worm المشاهدات : 456 الردود : 3 ‏23 ابريل 2014
  1. غير متصل

    morris worm
    rank
    Developer

    عضو منذ:
    ‏15 ابريل 2014
    عدد المشاركات:
    الإعجابات المتلقاة:
    2
    نقاط الجائزة:


    [​IMG]

    التعامل مع الأخطاء جزء مهم جدا في البرمجة، اذا برنامجك يفتقر الى معالجة الأخطاء فقد يبدو البرنامج غير احترافي وقد يتعرض لمشاكل أمنية.

    الجزء الأول : أنواع الأخطاء في لغة php

    هناك ثلاث اخطأء أساسية :

    1 - أخطاء نحوية Syntactical error

    هذا الخطأ يعني انك لم تتبع قواعد لغة php، وطبعا البرنامج ماراح يكمل تنفيذه،

    مثلا لما تعرف متغير بدون وضع علامة الدولار $، مثال :

    كود PHP:
    <?php
    test 
    5;
    ?>
    وراح نحصل على خطأ مثل هذا :

    كود:
    Parse error: syntax error, unexpected '=' in /var/www/s3c-k.com/error_handling.php on line 2
    



    أمثلة أخرى عن هذه الأخطاء :

    - عند استخدام دالة تكون غير معرفة.
    كود PHP:
    hello();
    Error :

    كود:
    Fatal error: Call to undefined function hello() in /var/www/s3c-k.com/error_handling.php on line 2
    - عندما ننسى اضافة الفاصلة المنقوطة في نهاية كل تعليمة

    كود PHP:
    <?php

    echo "Hello "

    echo "World";

    ?>
    Error :

    كود:
    Parse error: syntax error, unexpected 'echo' (T_ECHO), expecting ',' or ';' in /var/www/s3c-k.com/error_handling.php on line 5
    
    -
    كيفية اصلاحها ؟

    في الخطأ السابق، يوضح لك نوع الخطأ وايضا السطر اللي موجود فيه الخطأ، فلإصلاحه ببساطة نذهب للسطر الموجود فيه الخطأ ونتأكد من الأخطاء النحوية اللي وقعنا فيها ونصححها.

    2 - أخطاء وقت التشغيل runtime Error :

    أخطاء وقت التشغيل، تعني ان البرنامج صحيح لغويا ولكن ظهر خطأ أثناء تشغيل السكريبت،

    مثلا عندما تستخدم متغير بدون ماتعرفه، مثال :

    كود PHP:
    <?php

    echo ($test);
    echo 
    "s3c-k.com\n";

    ?>
    هنا مثلا مانلاحظ، المتغير test غير معرف، لذا راح نحصل على خطأ مثل هذا مثلا :

    كود:
    Notice: Undefined variable: test in /var/www/s3c-k.com/error_handling.php on line 3
    
    وطبعا البرنامج راح يكمل تنفيذه، يعني انه سيطبع s3c-k.com.

    3 - أخطاء منطقية Logical Errors :

    الأخطاء المنطقية تعني أن الكود صحيح لغويا وخالي من الأخطاء، ولكن السكريبت لايؤدي ماتتوقعه منه، وهذا النوع يعد من أصعب الأخطاء.

    مثلا لنفرض اننا نريد نعمل سكريبت يطبع جمع العدد 10 و 20،

    كود PHP:
    <?php
    $number1 
    10;
    $number2 20;

    echo 
    $number1 $number2;
    ?>
    طبعا الكود واضح جدا، عرفنا متغير number1 وحطينا فيه القيمة 10، ومتغير آخر number2 حطينا فيه القيمة 20، ثم في السطر الأخير وقعنا في خطأ منطقي، وهو بدلا من كتابة $number1 + $number2 يعني للجمع، كتبنا علامة الضرب، وبالتالي كان من المفروض ان السكريبت يطبع لنا 30، فطبعا لنا 200 :(.

    كيفية اصلاح الخطأ ؟

    لاتوجد اي طريقة لتصحيح هذا النوع من الأخطاء، لذا عليك ان تصححه بنفسك.

    الجزء الثاني : التعامل مع الأخطاء

    في هذا الجزء راح نتعلم كيفية التعامل مع الأخطاء :

    1 - باستخدام الدالة die ().
    2 - باستخدام error_reporting.
    3 - بإستخدام Error Control Operators

    1 - الطريقة الأساسية للتعامل مع الأخطاء بإستخدام الدالة die().

    أولا، لنفرض انه لدينا سكريبت يحتوي على مايلي :

    كود PHP:
    <?php
    $file
    =fopen("welcome.txt","r");
    ?>
    طبعا الكود بسيط جدا وواضح، فقط يقوم بفتح الملف welcome.txt للقراءة.

    ولكن اذا كان الملف welcome.txt غير موجود، فراح يطلع لنا خطأ مثل هذا مثلا :

    كود PHP:
    Warningfopen(welcome.txt): failed to open streamNo such file or directory in /var/www/s3c-k.com/error_handling.php on line 2
    الآن من أجل منع حصول هذه الأخطاء، فراح نستعمل الدالة file_exists والتي تقوم بالتأكد من وجود الملف أولا قبل فتحه باستخدام fopen

    كود PHP:
    <?php
    if (!file_exists ("welcome.txt"))
    {
        die (
    "\"welcome.txt\"File not found");
    }
    else
    {
        
    $file fopen ("welcome.txt""r");
    }
    ?>
    الآن اذا كان الملف غير موجود فمراح يظهر له هذاك الخطأ السابق، راح يظهر له :

    كود:
    "welcome.txt" File not found
    
    وطبعا هذا الكود أكثر كفاءة واحترافية من الكود الأول، لأنه يستخدم آلية معالجة الأخطاء، وايقاف السكريبت اذا وجد خطأ ما.

    ولكن ايقاف السكريبت ليس جيدا دائما، لذا سوف نلقي نظرة على طرق أخرى بديلة للتعامل مع الأخطاء

    2 - بإستخدام الدالة error_reporting.

    هذي الدالة تقوم باخفاء الأخطاء، والدالة بتاخذ معامل واحد يحدد نوع الأخطاء التي تريد إخفائها.

    قد يكون واحد من هذه الأنواع :

    E_WARNING
    E_NOTICE
    E_USER_ERROR
    E_USER_WARNING
    E_USER_NOTICE
    E_RECOVERABLE_ERROR
    E_ALL

    * اذا أردت اخفاء كل الأخطاء مهما كانت فنمرر القيمة 0 او NULL للدالة error_reporting، مثال :

    كود PHP:
    <?php
    error_reporting 
    (0);
    fopen ("welcome.txt""r");
    ?>
    هنا، اذا كان الملف welcome.txt مش موجود فماراح يظهر لك ولاخطأ.

    3 - بإستخدام Error Control Operators

    الError Control Operators هو المعامل @، عندما نضعه قبل تعليمة ما، فسوف يقوم بتجاهل كل الأخطاء الناتجة عن تلك التعليمة

    مثال :

    كود PHP:
    <?php
    $file 
    = @fopen ("welcome.txt""r");
    ?>
    لو كان الملف welcome.txt مش موجود فماراح يظهر ولا خطأ.

    وتوجد طريقة، أفضل هي Exception Handling، راح اشرحها في الدرس القادم ان شاء الله.

    والسلام عليكم ورحمة الله وبركاته

    :D

     


    جاري تحميل الصفحة...
  2. غير متصل

    or0
    V • I • P

    عضو منذ:
    ‏22 فبراير 2014
    عدد المشاركات:
    الإعجابات المتلقاة:
    14
    نقاط الجائزة:

    رد: التعامل مع الأخطاء Error Handling

    شكرا لك عزيزي .
     


  3. غير متصل

    BEN LADEN _DZ
    rank
    Developer

    عضو منذ:
    ‏10 يونيو 2012
    عدد المشاركات:
    الإعجابات المتلقاة:
    1
    نقاط الجائزة:
    الإقامة:

    رد: التعامل مع الأخطاء Error Handling

    وعليكم السلام ورحمة الله وبركاته
    يعطيك العافية يا غالي على الموضوع الرائع
    واصل ابداعك اخي :{2}:
     


  4. غير متصل

    Ubuntu
    rankrank
    Developer

    عضو منذ:
    ‏6 يناير 2013
    عدد المشاركات:
    الإعجابات المتلقاة:
    6
    نقاط الجائزة:

    رد: التعامل مع الأخطاء Error Handling

    .. الله يعطيك العـأإفية ..
     


مشاركة هذه الصفحة

جاري تحميل الصفحة...