الدرس السابع عشر -التحقق من القيم -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

 وفي الأخير قمنا بطباعة المتغيرات .