الدرس السابع عشر -التحقق من القيم -validate
التحقق من الحقول المطلوبة Required &Validation
في المواقع تجد علامة * امام الحقل تدل علي انه يجب مل هذا الحقل ولا يتم حفظ البيانات اذا كان فارغ في المثال التالي ستقوم بعمل تحقق من البيانات .
<!DOCTYPE HTML> <html> <head> <style> .error {color: #FF0000;} </style> </head> <body>
<?php // define variables and set to empty values $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Name is required"; } else { $name = test_input($_POST["name"]); }
if (empty($_POST["email"])) { $emailErr = "Email is required"; } else { $email = test_input($_POST["email"]); }
if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); }
if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); }
if (empty($_POST["gender"])) { $genderErr = "Gender is required"; } else { $gender = test_input($_POST["gender"]); } }
function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?>
<h2>PHP Form Validation Example</h2> <p><span class="error">* required field</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> Name: <input type="text" name="name"> <span class="error">* <?php echo $nameErr;?></span> <br><br> E-mail: <input type="text" name="email"> <span class="error">* <?php echo $emailErr;?></span> <br><br> Website: <input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> Comment: <textarea name="comment" rows="5" cols="40"></textarea> <br><br> Gender: <input type="radio" name="gender" value="female">Female <input type="radio" name="gender" value="male">Male <input type="radio" name="gender" value="other">Other <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="Submit"> </form>
<?php echo "<h2>Your Input:</h2>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?>
</body> </html>
|
بعض الملاحظات قبل البدء بشرح المثال :
- يمكن كتابة اكواد php قبل html او العكس
- المثال السابق عبارة عن نموذج به الاسم والبريد الالكتروني والموقع الالكتروني ونص لكتابة ملاحظات ثم عمل ازار اختيار لتحديد النوع
في البدء قمنا بعمل نمط وعرفنا فئة css اسمها error واعطاءها الون الأحمر .
اكواد الـ php .
- عرفنا متغيرات واعطيناها قيمة فارغة متغيرات تحمل رسالة الخطاء ومتغيرات تحمل القيم المرسلة من النموذج .
- تحققنا من الطريقة المرسلة اذا كانت post
- نستخدم if للتحقق من اذا كانت البيانات المرسلة من النموذج غير خالية واذا كانت خالية يتم ارسال رسالة "يجب مل الحقل ....."
- الدالة test_input تقوم بالتحقق من البيانات المدخلة وعمل فلترة لها بثلاث دوال :
- الدالة trim() تقوم بحذف المسافات الزائدة الفارغة .
- الدالة stripslashes() تقوم بحذف Backslashes .
- الدالة htmlspecialchars() توقف عمل اكواد ووسوم الـhtml تعاملها كأنها حروف فقط
- اسناد القيم المرسلة من النموذج الي المتغيرات.
الـHTML
نقوم بإنشاء نموذج به
نص لإدخال الاسم
نص لإدخال البريد الالكتروني
ونص لإدخال الموقع الالكتروني
ونص من نوع textarea للملاحظات
وعمل <span> امام الحقول المطلوبة والتي يجب الا تكون فارغة لإظهار رسالة الخطاء
وقمنا بعمل ثلاث ازار اختيار من النوع radio
وفي الأخير قمنا بطباعة المتغيرات .