أهم 10 أخطاء في PHP يقع فيها كل مبتدئ

تكتب الكود. تقوم بتحديث الصفحة. ترى شاشة بيضاء فارغة.

يحدث هذا لأن PHP يفشل بصمت بشكل افتراضي. إذا لم ترَ الأخطاء، فلن تتمكن من إصلاحها.

ابدأ عملية التطوير بإضافة هذه الأسطر في أعلى ملفك:

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

هذا يجبر PHP على إظهار ما هو خاطئ. لا تستخدم هذا في بيئة الإنتاج (production).

إليك 10 أخطاء شائعة وكيفية إصلاحها.

  1. فقدان الفاصلة المنقوطة (Missing Semicolons) يحتاج PHP إلى فاصلة منقوطة لإنهاء الجملة البرمجية. إذا نسيت واحدة، سيتوقف السكربت. الإصلاح: أنهِ أسطرك دائمًا بفاصلة منقوطة.

  2. المقارنة المرنة (Loose Comparison) يقوم المعامل == بتغيير الأنواع قبل المقارنة، مما يؤدي إلى نتائج خاطئة. الإصلاح: استخدم ===. هذا يتحقق من القيمة والنوع معًا.

  3. المتغيرات غير المعرفة (Undefined Variables) استخدام متغير لم تقم بإنشائه يسبب أخطاء منطقية. الإصلاح: استخدم معامل دمج القيم الفارغة (null coalescing operator). $name = $_GET['name'] ?? 'Guest';

  4. نطاق المتغيرات العامة (Global Variable Scope) لا تستطيع الدوال رؤية المتغيرات الموجودة خارجها. الإصلاح: مرر المتغيرات إلى الدوال كمعاملات (parameters).

  5. حقن SQL (SQL Injection) وضع مدخلات المستخدم مباشرة في الاستعلام أمر خطير، حيث يمكن للمهاجمين سرقة بياناتك. الإصلاح: استخدم البيانات المُعدة مسبقًا (prepared statements) مع العلامات النائبة (placeholders).

  6. البرمجة عبر المواقع (Cross-Site Scripting - XSS) طباعة مدخلات المستخدم الخام على الشاشة تسمح بتشغيل سكربتات خبيثة في المتصفحات. الإصلاح: استخدم htmlspecialchars() على جميع المخرجات.

  7. أخطاء الترويسة (Header Errors) لا يمكنك إرسال ترويسة (header) بعد إرسال أي نص أو مسافات إلى المتصفح. الإصلاح: ضع استدعاءات header() في الأعلى تمامًا. استخدم exit() دائمًا بعد إعادة التوجيه (redirect).

  8. فقدان مفاتيح النموذج (Missing Form Keys) الوصول إلى مفتاح نموذج غير موجود يسبب أخطاء. الإصلاح: استخدم معامل دمج القيم الفارغة (null coalescing operator) لتوفير قيمة افتراضية.

  9. الفرق بين Include و Require يعطي أمر include تحذيرًا فقط إذا كان الملف مفقودًا، ويستمر السكربت في العمل ثم ينهار لاحقًا. الإصلاح: استخدم require_once للملفات الحساسة مثل اتصالات قاعدة البيانات.

  10. عدم التحقق من قيم الإرجاع (Unchecked Return Values) تعيد العديد من دوال PHP القيمة false في حال فشلها. استخدام هذه القيمة في الخطوة التالية يسبب انهيار البرنامج. الإصلاح: تحقق مما إذا كانت الدالة قد أعادت false قبل استخدام النتيجة.

ملخص لكود أفضل: • قم بتفعيل تقارير الأخطاء في بيئة التطوير. • استخدم === بدلاً من ==. • تحقق من قيم الإرجاع. • قم بتنقية (Sanitize) جميع مدخلات المستخدم.

المصدر: https://dev.to/bikkisingh/top-10-php-bugs-every-beginner-makes-and-how-to-fix-them-1anh