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 - آرایه‌ها (Arrays)

JavaScript – آرایه‌ها (Arrays)

آرایه در جاوااسکریپت متغیری خاص است که می‌تواند بیش از یک مقدار را ذخیره کند. const cars = ["Saab",...

بیشتر بخوانید
JavaScript - ویژگی‌های عدد (Number Properties)

JavaScript – ویژگی‌های عدد (Number Properties)

در جاوااسکریپت، شیء Number شامل ویژگی‌هایی از پیش تعریف‌شده است که برای کار با اعداد مفید هستند. این ویژگی‌ها...

بیشتر بخوانید
JavaScript - متدهای عدد (Number Methods)

JavaScript – متدهای عدد (Number Methods)

در جاوا اسکریپت، متدهایی برای کار با اعداد ارائه شده‌اند که می‌توانند روی تمامی اعداد استفاده شوند. متدهای مربوط...

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

نظرات

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

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