اعتبارسنجی فرم (Form Validation)

بررسی صحت داده‌های فرم — اعتبارسنجی نام، ایمیل، عدد و امنیت فرم

چرا اعتبارسنجی مهم است؟

اعتبارسنجی (Validation) بررسی می‌کند که داده‌های وارد‌شده توسط کاربر صحیح و امن هستند. بدون اعتبارسنجی، سایت شما در برابر حملات آسیب‌پذیر می‌شود.

انواع اعتبارسنجی

نوعتوضیح
الزامیفیلد نباید خالی باشد
ایمیلفرمت ایمیل صحیح باشد
عددفقط عدد وارد شود
طولحداقل/حداکثر کاراکتر
الگومطابقت با الگوی خاص (RegEx)

بررسی فیلد الزامی

<?php
$name = $_POST["name"];

if (empty($name)) {
    echo "نام الزامی است!";
} else {
    echo "سلام $name!";
}
?>

اعتبارسنجی ایمیل

<?php
$email = $_POST["email"];

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "ایمیل معتبر است.";
} else {
    echo "ایمیل نامعتبر است!";
}
?>

بررسی طول رشته

<?php
$password = $_POST["password"];

if (strlen($password) < 8) {
    echo "رمز باید حداقل ۸ کاراکتر باشد!";
}
?>

اعتبارسنجی عدد

<?php
$age = $_POST["age"];

if (!is_numeric($age) || $age < 0 || $age > 150) {
    echo "سن نامعتبر است!";
}
?>

تابع اعتبارسنجی کامل

<?php
function validateForm($data) {
    $errors = [];

    // نام
    if (empty($data["name"])) {
        $errors[] = "نام الزامی است";
    } elseif (strlen($data["name"]) < 3) {
        $errors[] = "نام باید حداقل ۳ کاراکتر باشد";
    }

    // ایمیل
    if (empty($data["email"])) {
        $errors[] = "ایمیل الزامی است";
    } elseif (!filter_var($data["email"], FILTER_VALIDATE_EMAIL)) {
        $errors[] = "ایمیل نامعتبر است";
    }

    // سن
    if (empty($data["age"])) {
        $errors[] = "سن الزامی است";
    } elseif (!is_numeric($data["age"]) || $data["age"] < 18) {
        $errors[] = "سن باید حداقل ۱۸ باشد";
    }

    return $errors;
}

$errors = validateForm($_POST);

if (empty($errors)) {
    echo "فرم معتبر است!";
} else {
    foreach ($errors as $error) {
        echo "خطا: $error<br>";
    }
}
?>

این مبحث بخشی از دوره آموزش کامل PHP است.

ابزارهای مرتبط