10 באגים ב-PHP שכל מתחיל עושה
אתה כותב קוד. אתה מרענן את הדף. אתה רואה מסך לבן וריק.
זה קורה מכיוון ש-PHP נכשל בשקט כברירת מחדל. אם אינך רואה שגיאות, אינך יכול לתקן אותן.
התחל את הפיתוח שלך על ידי הוספת השורות הללו לראש הקובץ שלך:
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
זה מאלץ את PHP להראות לך מה לא בסדר. אל תשתמש בזה בסביבת production.
הנה 10 באגים נפוצים ואיך לתקן אותם.
נקודה-פסיק (Semicolon) חסרה PHP זקוקה לנקודה-פסיק כדי לסיים פקודה. אם תפספס אחת, הסקריפט ייעצר. פתרון: תמיד סיים את השורות שלך בנקודה-פסיק.
השוואה רפויה (Loose Comparison) האופרטור
==משנה את הסוגים לפני ההשוואה. זה מוביל לתוצאות שגויות. פתרון: השתמש ב-===. זה בודק גם את הערך וגם את הסוג.משתנים לא מוגדרים (Undefined Variables) שימוש במשתנה שלא יצרת גורם לשגיאות לוגיקה. פתרון: השתמש באופרטור ה-null coalescing.
$name = $_GET['name'] ?? 'Guest';טווח משתנים גלובליים (Global Variable Scope) פונקציות אינן יכולות לראות משתנים שנמצאים מחוץ להן. פתרון: העבר משתנים לפונקציות כפרמטרים.
SQL Injection הכנסת קלט משתמש ישירות לשאילתה היא מסוכנת. תוקפים יכולים לגנוב את הנתונים שלך. פתרון: השתמש ב-prepared statements עם placeholders.
Cross-Site Scripting (XSS) הדפסת קלט משתמש גולמי למסך מאפשרת לסקריפטים זדוניים לרוץ בדפדפנים. פתרון: השתמש ב-
htmlspecialchars()על כל פלט.שגיאות Header אינך יכול לשלוח header לאחר ששלחת טקסט או רווחים כלשהם לדפדפן. פתרון: מקם קריאות ל-
header()ממש בראש הקובץ. תמיד השתמש ב-exit()לאחר הפניה (redirect).מפתחות טופס חסרים (Missing Form Keys) גישה למפתח טופס שאינו קיים גורמת לשגיאות. פתרון: השתמש באופרטור ה-null coalescing כדי לספק ערך ברירת מחדל.
Include לעומת Require הפקודה
includeנותנת רק אזהרה אם קובץ חסר. הסקריפט ממשיך לרוץ וקורס מאוחר יותר. פתרון: השתמש ב-require_onceעבור קבצים קריטיים כמו חיבורי מסד נתונים.ערכי החזרה שלא נבדקו (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