PHP – اعتبارسنجی نام و ایمیل فرم‌ها (PHP Form Validate E-mail and URL)

اعتبارسنجی نام، ایمیل و URL در فرم‌های PHP

این فصل نشان می‌دهد که چگونه نام‌ها (names)، ایمیل‌ها (emails) و URL‌ها را اعتبارسنجی (validate) کنیم.

اعتبارسنجی نام در PHP (PHP - Validate Name)

کد زیر یک روش ساده برای بررسی این که آیا فیلد نام (name field) فقط شامل حروف، خط تیره، آپاستروف و فاصله است را نشان می‌دهد. اگر مقدار فیلد نام معتبر نباشد، یک پیام خطا ذخیره می‌شود:

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
  $nameErr = "Only letters and white space allowed";
}

تابع preg_match() یک رشته (string) را برای الگو (pattern) جستجو می‌کند و اگر الگو وجود داشته باشد، مقدار true و در غیر این صورت مقدار false برمی‌گرداند.

اعتبارسنجی ایمیل در PHP (PHP - Validate E-mail)

ساده‌ترین و امن‌ترین راه برای بررسی اینکه آیا یک آدرس ایمیل به درستی تشکیل شده است، استفاده از تابع filter_var() در PHP است. در کد زیر، اگر آدرس ایمیل به درستی تشکیل نشده باشد، یک پیام خطا ذخیره می‌شود:

$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  $emailErr = "Invalid email format";
}

اعتبارسنجی URL در PHP (PHP - Validate URL)

کد زیر یک روش برای بررسی این که آیا یک URL به درستی تشکیل شده است را نشان می‌دهد (این عبارت با قاعده (regular expression) همچنین به URL‌هایی که شامل خط تیره هستند، اجازه می‌دهد). اگر نحو (syntax) آدرس URL معتبر نباشد، یک پیام خطا ذخیره می‌شود:

$website = test_input($_POST["website"]);
if (!preg_match("/b(?:(?:https?|ftp)://|www.)[-a-z0-9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$website)) {
  $websiteErr = "Invalid URL";
}

اعتبارسنجی نام، ایمیل و URL در PHP (PHP - Validate Name, E-mail, and URL)

حالا، اسکریپت به شکل زیر است:

// تعریف متغیرها و تنظیم آنها به مقادیر خالی
$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 (!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"]);
    // بررسی کنید که آیا آدرس ایمیل به درستی تشکیل شده است
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $emailErr = "Invalid email format";
    }
  }
  
  if (empty($_POST["website"])) {
    $website = "";
  } else {
    $website = test_input($_POST["website"]);
    // بررسی کنید که آیا نحو آدرس 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"]);
  }
}

گام بعدی این است که نحوه جلوگیری از خالی شدن تمام فیلدهای ورودی زمانی که کاربر فرم را ارسال می‌کند، را نشان دهیم.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - کلمه کلیدی Let (Let)

JavaScript – کلمه کلیدی Let (Let)

تعریف let کلیدواژه let در ES6 (2015) معرفی شد و دارای ویژگی‌های خاصی است که آن را از var...

بیشتر بخوانید
JavaScript - متغیرها (Variables)

JavaScript – متغیرها (Variables)

متغیرها در جاوا اسکریپت متغیرها در جاوا اسکریپت به عنوان ظرف‌هایی برای ذخیره‌سازی داده‌ها استفاده می‌شوند و می‌توانند به...

بیشتر بخوانید
JavaScript - کامنت‌ها (Comments)

JavaScript – کامنت‌ها (Comments)

کامنت‌ها در جاوا اسکریپت کامنت‌ها در جاوا اسکریپت به برنامه‌نویسان این امکان را می‌دهند تا توضیحاتی را به کد...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.