הצילו! המסך שלי פתאום לבן עם הודעה מפחידה!!!
(פתירת שגיאות בסיסיות)
ברגע שהתחלנו להתעסק עם קוד הPHP, ולו באופן הכי בסיסי, רוב הסיכויים שמתישהו כשננסה להכנס לדף באתר ונראה מסך לבן ובו הודעת שגיאה.
להקדים תרופה למכה
אז קודם כל: גיבוי, כמובן.
לא מתחילים להתעסק בשום דבר בערך בלי לגבות.
וכמובן: לא עורכים ניסויים על גבי אתר באויר. אתם לא רוצים שהגולשים שלכם ייתקלו בהודעות שגיאה, בטח שלא ייתקעו מול מסך לבן.
אם אתם חייבים לעשות משהו באתר פעיל כבר, תורידו אותו מהאויר לכמה שעות (admin/settings/site-maintenance).
בלי פאניקה: מדריך קצרצר לבעיות בסיסיות שתתקלו בהן
אם אתם טורחים לקרוא את המדריך הזה, רוב הסיכויים שהבעיות שתתקלו בהן הן בעיות כאלו שנובעות מתחביר שגוי: שכחנו לכתוב איזה תו חיוני.
הודעות כאלו של הדפדפן מתחילות בדרך כלל ב"Parse error: syntax error, unexpected". זאת אומרת שהדפדפן מספר לנו על בעיית תחביר, ושהוא מצא משהו בלתי צפוי. בהמשך הוא מספר לנו באיזה קובץ קרתה השגיאה, ובאיזה שורה- אלו הנתונים שחשובים לנו בעיקר.
ברמה הבסיסית בה מטפל המדריך הזה, ישנן כמה סיבות עיקריות לשגיאת תחביר:
א. ניסינו להדפיס כמה משתנים/מחרוזות ביחד, ושכחנו לחבר אותם על ידי נקודה.
<?
echo $vv"ddd";
?>
במקרה כזה הדפדפן יאמר לי " unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in E:\xampp\htdocs\nis.php on line 2 "
או להפך:
<?
echo "ddd"$vv;
?>
במקרה זה השגיאה תהיה:" unexpected T_VARIABLE, expecting ',' or ';' in E:\xampp\htdocs\nis.php on line 2"
יש עוד כל מיני שגיאות כאלו: שכחנו לשים סימן דולר לפני משתנה (אאל"ט זה לא יעשה מסך להן אלא את הודעות השגיאה האדומות הללו), לא סגרנו סוגריים וכו' המשותף בין כולן ש
ברוב המקרים, השגיאה תהיה בשורה אותה מציינת הודעת השגיאה.
ב. שכחנו לשים ; אחרי פקודה של PHP.
בכל "שורה" של השפה מותרת רק פקודה אחת, בPHP, כאשר מבחינת המחשב בכל פעם שיש ; מסתיימת שורה. (לא לבלבל עם ספירת השורות שמתבצעת על פי מעברי שורה) לכן, אם נשכח לשים ; וננסה לעשות עוד פקודה (למשל echo) הדפדפן יזהה שגיאת תחביר.
במקרה הזה:
<?php
echo $fff
echo $ggg;
?>