بتـــــاريخ : 10/6/2008 10:30:13 PM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 871 0


    الأخطاءفي php

    الناقل : mahmoud | العمر :35 | المصدر : www.kl28.com

    كلمات مفتاحية  :
    الأخطاءفي php

    هناك ثلاث أنواع من الأخطاء في php


    Parse Errors
    Header Errors
    mySQL Result Source Errors خلل في نتائج الإستعلام في قاعدةالبيانات




    Parse Errors

    مثال

    Parse error: parse error, unexpected T_STRING in /home/www/html/script/cat.php on line 11
    ?>

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

    الحل
    راجع كودك و انظر إلى رقم السطر الذي ذكر لك في رسالة الخطأ من المستحسن أن ترتب كودك بمعنى أن تترك المسافات اللازمة مثلا الشكل التالي غير عملي

    if($test==1){
    echo "one";}
    else{ echo "two"; }
    ?>

    و لكن نسقة بهذا الشكل

    if($test==1){
    echo "one";
    }
    else{
    echo "two";
    } ?>

    لتعرف بداية و نهاية كل كود كما يستحسن استخدام أحد المحررات التي تسمح بتلوين الشفرة لتعرف في حال نسيت إقفال أقواس النص .


    Header Errors
    مثال

    Warning: Cannot add header information - headers already sent by (output started at /home/www/html/test/showclass.php:9) in /home/www/html/test/showclass.php on line 10
    ?>

    سبب الخلل

    دالات HTTP header هي دالة موجود في الphp تستخدم لعدة أسباب منها و هي دالات يجب أن توضع قبل طباعة أي شئ حتى السطر الفارغ أي يجب أن لا يظهر قبلها سطر فارغ و أن لايطبع قبلها اي شئ في المتصفح سواء باستخدام الhtml العادي أو بأستخدام دالة echo أو print أحد أكثر الدالات من هذا النوع استخداما هي

    Header("location: http://ww.qatardr.net.com");
    ?>

    و

    setcookie()
    ?>

     

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

    mySQL Result Source Errors

    مثال

    Warning: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/virtual/site5/fst/php/error/index.php on line 3
    ?>

    سبب الخلل حسنا اكتشاف هذا الخلل يجتاج للقليل من البحث و في الغالب المشكلة في المتغير result و الذي يستخدم في حلقة التكرار loop مثلا لو كان الكود بالشكل التالي

    $result = mysql_query("select * from shoutbox ORER by id desc limit 5");
    //problem on the above line, ORDER is misspelled
    while($r=mysql_fetch_array($result))
    {
    $time=$r["time"]; //getting each variable from the table
    $id=$r["id"];
    $message=$r["message"];
    $name=$r["name"];
    }
    ?>

     

    ستلاحظ أن الخلل في الدالة mysql_fetch_array لكن في الحقيقة الخلل في المتغير result فهو السبب كونه لم يحتوى على نتائج من الإستعلام و الخلل به حيث لو لاحظت الاستعلام كلمة order غير صحيحة

    الحل
    أولا اذهب إلى السطر الذي يقوم الphpان الخلل به

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

    ملحوظة أخيرة
    احيانا قد تظهر رسالة خلل و يبدو كل شئ صحيح لكن سيظهر لك البرنامج نوع من التحذير يمكنك وقف هذا التحذير باستخدام الرمز @ قبل الدالة مثلا @mysql_fetch_array


    مترجم عن http://www.spoono.com/php/tutorials/tutorial.php?id=31 بتصرف


    وبالتوفيق

    كلمات مفتاحية  :
    الأخطاءفي php

    تعليقات الزوار ()