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

الأخطاء

 

هناك ثلاث أنواع من الأخطاء في php
  1. Parse Errors
  2. Header Errors
  3. 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 بتصرف

 

 

 


Powered by Rawshanh
Copyright ©2006 - 2010.
    Designed for blo4.com