فرم و درخواست · ۱۱ دقیقه مطالعه

پردازش و اعتبارسنجی فرم

اعتبارسنجی فرم، مرز بین یک اپ امن و یک اپ آسیب‌پذیر است.

فرم و پردازش

<form method="POST" action="register.php">
  <input name="name"><input name="email" type="email">
  <button>ثبت</button>
</form>
<?php
$errors = [];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = trim($_POST['name'] ?? '');
    $email = trim($_POST['email'] ?? '');

    // اجباری
    if ($name === '') {
        $errors[] = "نام اجباری است";
    }
    // فرمت ایمیل
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $errors[] = "ایمیل نامعتبر است";
    }

    if (empty($errors)) {
        // ذخیره امن ...
        echo "ثبت شد";
    }
}

توابع فیلتر PHP

filter_var($email, FILTER_VALIDATE_EMAIL);
filter_var($url, FILTER_VALIDATE_URL);
filter_var($n, FILTER_VALIDATE_INT);
filter_var($s, FILTER_SANITIZE_SPECIAL_CHARS);

نمایش امن مقدار قبلی

<input name="name" value="<?= htmlspecialchars($name ?? '') ?>">

<?= ?> کوتاه‌شدهٔ <?php echo ?> است.

⚠️ سه قانون همیشگی

۱) اعتبارسنجی سمت سرور (نه فقط مرورگر؛ کاربر می‌تواند دورش بزند). ۲) escape هنگام نمایش (ضد XSS). ۳) prepared statement هنگام دیتابیس (ضد SQL Injection).

برای ثبت پیشرفت و کسب XP وارد شو.

ورود به میدان
→ Superglobals: GET، POST و SERVER