شرح التحقق من المدخلات (Validation) في PHP

بعد تعلم GET وPOST، وصلنا إلى خطوة أساسية في أي مشروع حقيقي: التحقق من المدخلات (Validation). أي بيانات تأتي من المستخدم قد تكون ناقصة، خاطئة، أو حتى خبيثة.

الهدف من Validation هو التأكد أن البيانات صالحة وآمنة قبل عرضها أو حفظها في قاعدة البيانات.

لماذا Validation مهمة في PHP؟

  • منع إدخال بيانات فارغة أو غير منطقية.
  • تقليل الأخطاء داخل التطبيق.
  • رفع مستوى الأمان (خصوصاً ضد XSS وبعض الهجمات الشائعة).

مثال 1: التحقق من الحقول الفارغة

الكود:

<?php
if (empty($_POST["username"])) {
    echo "خطأ: اسم المستخدم مطلوب";
} else {
    echo "تم إدخال الاسم بنجاح";
}
?>

شرح كود PHP:

  • empty() تفحص هل القيمة فارغة.
  • إذا كانت فارغة نعرض رسالة خطأ واضحة.
  • إذا كانت موجودة نكمل المعالجة.

مثال 2: تنظيف النص قبل العرض باستخدام htmlspecialchars()

الكود:

<?php
$name = htmlspecialchars($_POST["name"]);
echo "مرحباً " . $name;
?>

هذه الدالة تحول الرموز الخاصة مثل < و> إلى صيغة آمنة عند العرض، ما يساعد على منع تنفيذ سكربتات ضارة داخل الصفحة.

مثال 3: التحقق من البريد الإلكتروني باستخدام filter_var()

الكود:

<?php
$email = $_POST["email"];

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "البريد الإلكتروني غير صحيح";
} else {
    echo "بريد إلكتروني صحيح";
}
?>

شرح كود PHP:

  • filter_var() تطبق فلتر التحقق على القيمة.
  • FILTER_VALIDATE_EMAIL يتأكد أن صيغة البريد صحيحة.

Workflow بسيط للتحقق من نموذج

  1. تأكد أن الطلب POST.
  2. افحص الحقول المطلوبة بـ empty().
  3. تحقق من الصيغ (مثل البريد) بـ filter_var().
  4. نظّف المخرجات قبل العرض بـ htmlspecialchars().
قاعدة ذهبية: لا تثق أبداً بمدخلات المستخدم، حتى لو كان عندك تحقق في HTML أو JavaScript.

أخطاء شائعة للمبتدئين

  • الاكتفاء بالتحقق في الواجهة فقط بدون تحقق في الخادم.
  • عرض مدخلات المستخدم مباشرة بدون htmlspecialchars().
  • عدم التمييز بين "تنظيف" البيانات و"التحقق" من صحتها.
  • إظهار رسائل خطأ عامة جداً لا تساعد المستخدم على التصحيح.

تمرين تطبيقي سريع

  1. أنشئ نموذجاً فيه username وemail.
  2. اجعل الإرسال بطريقة POST.
  3. تحقق أن username غير فارغ.
  4. تحقق من email باستخدام filter_var().
  5. اعرض القيم بشكل آمن باستخدام htmlspecialchars().

الأسئلة الشائعة — FAQ

ما المقصود بـ Validation في PHP؟

هي عملية التحقق من صحة البيانات قبل استخدامها أو تخزينها.

لماذا نستخدم htmlspecialchars()؟

لتحويل المخرجات إلى صيغة آمنة عند العرض وتقليل مخاطر XSS.

كيف أتحقق من البريد الإلكتروني؟

باستخدام filter_var($email, FILTER_VALIDATE_EMAIL).

هل التحقق في JavaScript وحده كافٍ؟

لا. يجب وجود تحقق في الخادم عبر PHP لأنه هو التحقق الملزم فعلياً.

ممتاز! الآن أصبحت قادراً على كتابة Validation أساسية بشكل صحيح وآمن. في الدرس القادم سنتعلم قراءة الملفات في PHP.
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن