10 באגים ב-PHP שכל מתחיל עושה

אתה כותב קוד. אתה מרענן את הדף. אתה רואה מסך לבן וריק.

זה קורה מכיוון ש-PHP נכשל בשקט כברירת מחדל. אם אינך רואה שגיאות, אינך יכול לתקן אותן.

התחל את הפיתוח שלך על ידי הוספת השורות הללו לראש הקובץ שלך:

ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);

זה מאלץ את PHP להראות לך מה לא בסדר. אל תשתמש בזה בסביבת production.

הנה 10 באגים נפוצים ואיך לתקן אותם.

  1. נקודה-פסיק (Semicolon) חסרה PHP זקוקה לנקודה-פסיק כדי לסיים פקודה. אם תפספס אחת, הסקריפט ייעצר. פתרון: תמיד סיים את השורות שלך בנקודה-פסיק.

  2. השוואה רפויה (Loose Comparison) האופרטור == משנה את הסוגים לפני ההשוואה. זה מוביל לתוצאות שגויות. פתרון: השתמש ב-===. זה בודק גם את הערך וגם את הסוג.

  3. משתנים לא מוגדרים (Undefined Variables) שימוש במשתנה שלא יצרת גורם לשגיאות לוגיקה. פתרון: השתמש באופרטור ה-null coalescing. $name = $_GET['name'] ?? 'Guest';

  4. טווח משתנים גלובליים (Global Variable Scope) פונקציות אינן יכולות לראות משתנים שנמצאים מחוץ להן. פתרון: העבר משתנים לפונקציות כפרמטרים.

  5. SQL Injection הכנסת קלט משתמש ישירות לשאילתה היא מסוכנת. תוקפים יכולים לגנוב את הנתונים שלך. פתרון: השתמש ב-prepared statements עם placeholders.

  6. Cross-Site Scripting (XSS) הדפסת קלט משתמש גולמי למסך מאפשרת לסקריפטים זדוניים לרוץ בדפדפנים. פתרון: השתמש ב-htmlspecialchars() על כל פלט.

  7. שגיאות Header אינך יכול לשלוח header לאחר ששלחת טקסט או רווחים כלשהם לדפדפן. פתרון: מקם קריאות ל-header() ממש בראש הקובץ. תמיד השתמש ב-exit() לאחר הפניה (redirect).

  8. מפתחות טופס חסרים (Missing Form Keys) גישה למפתח טופס שאינו קיים גורמת לשגיאות. פתרון: השתמש באופרטור ה-null coalescing כדי לספק ערך ברירת מחדל.

  9. Include לעומת Require הפקודה include נותנת רק אזהרה אם קובץ חסר. הסקריפט ממשיך לרוץ וקורס מאוחר יותר. פתרון: השתמש ב-require_once עבור קבצים קריטיים כמו חיבורי מסד נתונים.

  10. ערכי החזרה שלא נבדקו (Unchecked Return Values) פונקציות PHP רבות מחזירות false אם הן נכשלות. שימוש בערך ה-false הזה בשלב הבא גורם לקריסה. פתרון: בדוק אם הפונקציה החזירה false לפני שאתה משתמש בתוצאה.

סיכום לקוד טוב יותר: • הפעל דיווח שגיאות בסביבת פיתוח. • השתמש ב-=== במקום ==. • בדוק ערכי החזרה. • בצע Sanitize לכל קלט משתמש.

מקור: https://dev.to/bikkisingh/top-10-php-bugs-every-beginner-makes-and-how-to-fix-them-1anh