🛡️ كيف تضمن صحة بيانات المستخدم؟ شرح الـ Form Validation في PHP
بعد أن تعلمنا كيف نستقبل البيانات من النماذج (Forms) باستخدام $_POST و $_GET في الدروس السابقة، وصلنا الآن إلى نقطة في غاية الأهمية.
سؤال مهم: هل يمكنك الوثوق بكل ما يكتبه المستخدم في النموذج؟ الإجابة هي: قطعاً لا! ❌
قد ينسى المستخدم كتابة بريده الإلكتروني، أو يترك حقل الاسم فارغاً، أو يكتب بيانات غير منطقية. هنا يأتي دور التحقق من البيانات (Form Validation)، وهي العملية التي نتأكد من خلالها أن البيانات المدخلة صحيحة ومكتملة قبل أن نقوم بمعالجتها أو تخزينها.
📋 ما هو الـ Form Validation ولماذا نحتاجه؟
ببساطة، هو وضع "شروط" على البيانات. إذا تحققت الشروط، يتم قبول البيانات. إذا لم تتحقق، نرفض الطلب ونخبر المستخدم بالخطأ الذي ارتكبه.
أهم فوائد التحقق من البيانات:
- تحسين تجربة المستخدم: إخبار المستخدم فوراً بأن هناك حقلاً ناقصاً.
- دقة البيانات: التأكد من أن البريد الإلكتروني يحتوي على علامة
@مثلاً. - الأمان الأساسي: منع إرسال نماذج فارغة تماماً إلى الخادم.
🛠️ الخطوات الأساسية للتحقق من البيانات
لكي نقوم بعملية التحقق، نتبع عادةً هذا التسلسل المنطقي:
- استلام البيانات من النموذج.
- إنشاء متغير لتخزين رسائل الخطأ.
- اختبار كل حقل على حدة (هل هو فارغ؟ هل هو قصير جداً؟).
- إذا وجدنا خطأ، نضيف رسالة تنبيه.
- في النهاية، إذا كان متغير الأخطاء فارغاً، نعالج البيانات.
💻 مثال عملي: التحقق من "اسم المستخدم" و "البريد الإلكتروني"
لنقم ببناء نموذج بسيط يتكون من حقلين: الاسم والبريد الإلكتروني. سنقوم بالتحقق من أن الحقول ليست فارغة وأن البريد الإلكتروني مكتوب بصيغة صحيحة.
1. كود HTML (النموذج):
<form method="post" action="process.php">
<label>Name:</label>
<input type="text" name="username">
<br>
<label>Email:</label>
<input type="text" name="email">
<br>
<input type="submit" value="Send">
</form>
2. كود PHP للمعالجة والتحقق (process.php):
<?php
// 1. تعريف متغير لتخزين الأخطاء
$errors = "";
// 2. التأكد أن البيانات تم إرسالها عبر طريقة POST
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// استلام البيانات من النموذج
$name = $_POST['username'];
$email = $_POST['email'];
// 3. التحقق من حقل الاسم (هل هو فارغ؟)
if (empty($name)) {
$errors .= "Name is required! <br>"; // إضافة خطأ إذا كان فارغاً
}
// 4. التحقق من حقل البريد الإلكتروني
if (empty($email)) {
$errors .= "Email is required! <br>"; // خطأ إذا كان فارغاً
}
// استخدام دالة filter_var للتأكد أن الصيغة بريد إلكتروني صحيحة
elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors .= "Invalid email format! <br>"; // خطأ إذا كانت الصيغة خاطئة
}
// 5. القرار النهائي
if ($errors == "") {
echo "Success! Your data has been sent."; // إذا لم توجد أخطاء
} else {
echo "Please fix the following errors: <br>" . $errors; // عرض جميع الأخطاء
}
}
?>
🔍 شرح أهم الأدوات المستخدمة في الكود:
- الدالة
empty(): هذه الدالة رائعة جداً، فهي تعيد قيمة "صحيح" (True) إذا كان المتغير فارغاً أو غير موجود، وهي الأساس في التأكد من أن المستخدم لم يترك الحقل فارغاً. - الدالة
filter_var(): هذه دالة مدمجة في PHP قوية جداً. استخدمنا معها الفلترFILTER_VALIDATE_EMAILالذي يقوم بفحص النص للتأكد من أنه يتبع معايير البريد الإلكتروني العالمية (مثل وجود @ ونقطة). - عامل الربط
.=: استخدمناه في$errors .= "..."لكي لا نمسح الخطأ الأول عند إضافة خطأ ثانٍ، بل نقوم بإضافته إلى نهاية النص الموجود مسبقاً.
⚠️ ملاحظات هامة للمبتدئين
- الترتيب مهم: لاحظ أننا تحققنا أولاً هل الحقل فارغ
empty()، ثم تحققنا من الصيغةfilter_var. لا يمكننا التحقق من صيغة البريد الإلكتروني وهو فارغ أصلاً! - البساطة: في هذا الدرس، ركزنا على التحقق من "المنطق" (هل البيانات موجودة وصحيحة؟). لا تحاول الدخول في تعقيدات التشفير الآن، ركز فقط على إتقان هذه الخطوات.
🎓 اختبر معلوماتك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال