الأحد، 29 نوفمبر 2015

التحقق من صحة البريد الإلكتروني ورابط الموقع Forms - Validate E-mail and URL

PHP - Validate Name
يظهر مقطع الشفرة أدناه طريقة بسيطة لمعرفة ما اذا كان حقل الاسم يحتوي على حروف او فواصل فارغة. إذا كانت قيمة حقل الاسم غير صالحة، ثم تخزين رسالة خطأ:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
  $nameErr = "Only letters and white space allowed"; 
}
preg_match()
تقوم هذه الدالة بعملية التاكد من مطابقة قيمة المتغير مع ما نريده من قيم بمعنى انك اذا اردت التاكد من ان القيم التي تكتب في خانة الاسم هي فقط من نوع الحروف الصغيرة او الكبيرة الانكليزية فسوف نقوم بكتابة الصيغة بالشكل التالي :
if (!preg_match("/^[a-zA-Z ]*$/",$name))
حيث تتكون دالة preg_match من قسمين او برامتير اثنين احدهما الاول يمثل ما تفرضه من قيم والثاني قيمة المتغير الذي يتم مقارنته مع القيم المفروضة العبارة التي تسيق preg_match والتي هي ! تعني عدم مطابقة


PHP - Validate E-mail
أسهل وأسلم طريقة للتحقق ما إذا كان عنوان البريد الإلكتروني هذا منسق بشكل جيد نستخدم   :
filter_var()
مقطع الكود او الشفرة الخاصة بذلك هي :
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  $emailErr = "Invalid email format"; 
}

PHP - Validate URL
الكود التالي أدناه يوضح طريقة لمعرفة ما إذا كان بناء جملة عنوان URL غير صالحة 
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
  $websiteErr = "Invalid URL"; 
}
مثال متكامل //
<?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"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $nameErr = "Only letters and white space allowed"; 
    }
  }

  if (empty($_POST["email"])) {
    $emailErr = "Email is required";
  } else {
    $email = test_input($_POST["email"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $emailErr = "Invalid email format"; 
    }
  }

  if (empty($_POST["website"])) {
    $website = "";
  } else {
    $website = test_input($_POST["website"]);
    // check if URL address syntax is valid (this regular expression also allows dashes in the URL)
    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
      $websiteErr = "Invalid URL"; 
    }
  }

  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"]);
  }
}
?>

ليست هناك تعليقات :

إرسال تعليق