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 - رویدادها (Events)

JavaScript – رویدادها (Events)

رویدادهای HTML رویدادها در HTML، “اتفاقاتی” هستند که برای عناصر HTML رخ می‌دهند. این اتفاقات می‌توانند ناشی از کار...

بیشتر بخوانید
JavaScript - سازنده‌های شیء (Object Constructors)

JavaScript – سازنده‌های شیء (Object Constructors)

ساخت آبجکت با تابع سازنده (Object Constructor Function) برای ساخت چندین آبجکت مشابه، از تابع سازنده استفاده می‌شود. این...

بیشتر بخوانید
JavaScript - نمایش شیء (Object Display)

JavaScript – نمایش شیء (Object Display)

نحوه نمایش آبجکت‌ها در جاوااسکریپت هنگام نمایش یک آبجکت جاوااسکریپت به صورت مستقیم، خروجی معمولاً به شکل [object Object]...

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

نظرات

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

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