10 באגים ב-PHP שכל מתחיל עושה
אתה כותב קוד. אתה מרענן את הדף. אתה רואה מסך לבן וריק.
זה קורה מכיוון ש-PHP נכשל בשקט כברירת מחדל. עליך לאלץ אותו להציג שגיאות במהלך הפיתוח.
הוסף את השורות הללו לראש הקבצים שלך:
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
אל תשתמש בזה בסביבת production. השתמש ביומני קבצים (file logs) במקום.
להלן 10 טעויות נפוצות וכיצד לתקן אותן:
חוסר בנקודה-פסיק (Semicolons) PHP מפסיקה לעבוד אם שוכחים נקודה-פסיק. זה גורם לעיתים קרובות לקריסה שקטה. תיקון: ודא שכל פקודה מסתיימת בנקודה-פסיק.
השוואה רפויה (Loose Comparison) (== לעומת ===) סימן השווה הכפול מבצע המרה אוטומטית של סוג הנתונים (type coercion). זה מוביל לשגיאות לוגיקה. תיקון: השתמש בשווה משווה משולש (===). הוא בודק גם את הערך וגם את סוג הנתונים.
משתנים לא מוגדרים (Undefined Variables) שימוש במשתנה לפני שהקצית לו ערך שובר את הלוגיקה שלך. תיקון: השתמש באופרטור ה-null coalescing. דוגמה:
$name = $_GET['name'] ?? 'Guest';טווח משתנים גלובליים (Global Variable Scope) פונקציות אינן יכולות לראות משתנים שנמצאים מחוץ להן. תיקון: העבר משתנים לפונקציות כפרמטרים.
SQL Injection בניית שאילתות באמצעות קלט משתמש מאפשרת להאקרים לגנוב נתונים. תיקון: השתמש ב-prepared statements עם placeholders (?).
Cross-Site Scripting (XSS) הדפסה ישירה של קלט משתמש מאפשרת לסקריפטים זדוניים לרוץ בדפדפנים. תיקון: עטוף את הפלט ב-
htmlspecialchars().כותרות כבר נשלחו (Headers Already Sent) אינך יכול לבצע הפניה (redirect) למשתמש אם כבר שלחת טקסט לדפדפן. אפילו רווח בודד עלול לגרום לשגיאה זו. תיקון: מקם קריאות
header()ממש בראש הקובץ. השתמש תמיד ב-exit()לאחר הפניה.מפתחות מערך לא מוגדרים (Undefined Array Keys) גישה למפתח בטופס שאינו קיים גורמת להתרעות (warnings). תיקון: השתמש באופרטור ה-null coalescing עבור כל נתוני ה-_POST וה-_GET.
Include לעומת Require
includeמציג רק התרעה אם קובץ חסר. הסקריפט ממשיך לרוץ וקורס מאוחר יותר. תיקון: השתמש ב-require_onceעבור קבצים קריטיים כמו חיבורים למסד נתונים.ערכי החזרה שלא נבדקו (Unchecked Return Values) פונקציות PHP רבות מחזירות
falseבמקרה של כישלון. אם תשתמש בתוצאה הזו מיד, תקבל שגיאות נוספות. תיקון: בדוק אם התוצאה היאfalseלפני השימוש בה.
סיכום להצלחה:
- הפעל דיווח שגיאות בסביבת פיתוח.
- השתמש ב-
===עבור כל ההשוואות. - בצע ניקוי (Sanitize) לכל קלט משתמש.
- בדוק ערכי החזרה.
מקור: https://dev.to/bikkisingh/top-10-php-bugs-every-beginner-makes-and-how-to-fix-them-1anh