أهلا وسهلا بك زائرنا الكريم في JO1R FORUM | منتديات شباب و صبايا الأردن، لكي تتمكن من المشاركة ومشاهدة جميع أقسام المنتدى وكافة الميزات ، يجب عليك إنشاء حساب جديد بالتسجيل بالضغط هنا أو تسجيل الدخول اضغط هنا إذا كنت عضواً .

اساسيات لتعلم لغـة البرمجة PHP موضوع متجدد هناك ثلاث أنواع من الأخطاء في php Parse Er

هناك ثلاث أنواع من الأخطاء في php Parse Errors Header Errors mySQL Result Source Errors خلل في نتائج الإستعلام في قاعدةالبيانات Parse Errors مثال كو



look/images/icons/i1.gif اساسيات لتعلم لغـة البرمجة PHP .. موضوع متجدد
  17-04-2009 09:41 صباحاً  
معلومات الكاتب ▼
تاريخ الإنضمام : 04-07-2007
رقم العضوية : 1
المشاركات : 11,318
الدولة : Jordan
الجنس :
تاريخ الميلاد : 10-7-1986
قوة السمعة : 2,147,483,647
موقعي : زيارة موقعي
هناك ثلاث أنواع من الأخطاء في php

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


Parse Errors

مثال
كود PHP:
PHP
Parse error: parse error, unexpected T_STRING in /home/www/html/script/cat.php on line 11  
سبب الخلل

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

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


كود PHP:
PHP
<?
if($test==1){
echo &quot;one&quot;;}
else{ echo &quot;two&quot;; }
?>
و لكن نسقة بهذا الشكل

كود PHP:
PHP
<?
if($test==1){
echo &quot;one&quot;;
}
else{
echo &quot;two&quot;;
} ?>
لتعرف بداية و نهاية كل كود كما يستحسن استخدام أحد المحررات التي تسمح بتلوين الشفرة لتعرف في حال نسيت إقفال أقواس النص .

Header Errors
مثال

كود PHP:
PHP
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 أحد أكثر الدالات من هذا النوع استخداما هي


كود PHP:
PHP
Header(&quot;location: http://ww.qatardr.net.com&quot;);  

و

كود PHP:
PHP
setcookie()  

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

mySQL Result Source Errors

مثال

كود PHP:
PHP
 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 مثلا لو كان الكود بالشكل التالي

كود PHP:
PHP
<?
$result = mysql_query(&quot;select * from shoutbox ORER by id desc limit 5&quot;);
//problem on the above line, ORDER is misspelled
while($r=mysql_fetch_array($result))
{
$time=$r[&quot;time]; //getting each variable from the table
$id=$r[&quot;id];
$message=$r[&quot;message];
$name=$r[&quot;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 بتصرف



الساعة الآن 01:58 PM