🛠️ ضمان إدخال البيانات: التعامل مع الحقول المطلوبة في PHP

عندما تقوم بإنشاء نموذج (Form) على موقعك، مثل صفحة "اتصل بنا" أو "إنشاء حساب"، فإنك بالتأكيد لا تريد أن يقوم المستخدم بإرسال النموذج وهو فارغ، أليس كذلك؟

في هذا الدرس، سنتعلم كيف نجبر المستخدم على ملء حقول معينة، وكيف نتحقق من ذلك برمجياً باستخدام لغة PHP لضمان وصول البيانات المطلوبة إلينا.


1. الخطوة الأولى: جعل الحقول مطلوبة في HTML 📋

قبل أن ننتقل إلى PHP، توفر لنا لغة HTML طريقة بسيطة وسريعة جداً لإخبار المتصفح بأن هذا الحقل "مطلوب". يتم ذلك عن طريق إضافة كلمة required داخل وسم الإدخال <input>.

ماذا تفعل خاصية required؟ عندما يحاول المستخدم الضغط على زر "إرسال" والحقل فارغ، سيقوم المتصفح تلقائياً بإظهار رسالة تنبيه تطلب منه ملء الحقل، ولن يتم إرسال البيانات إلى خادم PHP حتى يتم ملء الحقل.

مثال بسيط (HTML):

<!-- هذا الحقل إجباري، لن يتم إرسال النموذج بدونه -->
<input type="text" name="username" required>

2. لماذا نحتاج للتحقق باستخدام PHP أيضاً؟ 🤔

قد تتساءل: "إذا كانت خاصية required في HTML تمنع الإرسال، لماذا أحتاج لكتابة كود PHP للتحقق؟"

الإجابة ببساطة: لأن المستخدم المحترف (أو المخرب) يمكنه إزالة كلمة required من المتصفح بسهولة عبر "أدوات المطور" (Inspect Element)، وبالتالي يمكنه إرسال النموذج فارغاً. لذا، القاعدة الذهبية في البرمجة هي: "لا تثق أبداً في البيانات القادمة من المستخدم".

يجب أن نقوم بالتحقق من البيانات في جهة الخادم (Server-side) باستخدام PHP لضمان الأمان والدقة.


3. كيفية التحقق من الحقول الفارغة في PHP 💻

للتحقق مما إذا كان الحقل فارغاً أم لا في PHP، نستخدم دالة بسيطة جداً تسمى empty(). هذه الدالة تعيد قيمة "صح" (True) إذا كان المتغير فارغاً، وتعيد "خطأ" (False) إذا كان يحتوي على بيانات.

إليك الخطوات البرمجية:

  1. نستقبل البيانات من النموذج باستخدام المصفوفة $_POST.
  2. نستخدم جملة الشرط if مع الدالة empty() للتأكد من أن الحقل ليس فارغاً.
  3. إذا كان فارغاً، نقوم بطباعة رسالة خطأ للمستخدم.

مثال عملي شامل:

لنفترض أن لدينا نموذجاً يطلب "الاسم" و "البريد الإلكتروني".

ملف النموذج (index.html):

<form action="process.php" method="POST">
    Name: <input type="text" name="full_name" required> <br>
    Email: <input type="email" name="user_email" required> <br>
    <input type="submit" value="Send Data">
</form>

ملف المعالجة (process.php):

<?php
// استقبال البيانات من النموذج
$name = $_POST['full_name'];
$email = $_POST['user_email'];

// التحقق مما إذا كان حقل الاسم فارغاً
if (empty($name)) {
    echo "Error: Name field is required! ❌";
} 
// التحقق مما إذا كان حقل البريد الإلكتروني فارغاً
elseif (empty($email)) {
    echo "Error: Email field is required! ❌";
} 
// إذا كانت جميع الحقول ممتلئة
else {
    echo "Success: Data received correctly! ✅";
    echo "Hello, " . $name;
}
?>

💡 شرح الكود خطوة بخطوة:

  1. $_POST['full_name']: قمنا بجلب القيمة التي كتبها المستخدم في الحقل الذي يحمل اسم full_name.
  2. if (empty($name)): هنا نسأل PHP: "هل متغير الاسم فارغ؟".
  3. elseif: استخدمناها لأننا نريد التحقق من الحقل الثاني فقط في حال كان الحقل الأول صحيحاً.
  4. else: هذه هي المحطة الأخيرة؛ إذا لم تتحقق شروط "الفراغ"، فهذا يعني أن المستخدم ملأ جميع الحقول المطلوبة بنجاح.

🚀 ملخص سريع لما تعلمناه:

  • استخدمنا required في HTML لمنع الإرسال بشكل أولي وتسهيل تجربة المستخدم.
  • عرفنا أن التحقق في PHP ضروري جداً للأمان لأن HTML يمكن تخطيها.
  • استخدمنا الدالة empty() في PHP للتأكد من أن الحقول تحتوي على بيانات قبل معالجتها.