فرم و درخواست
·
۱۱ دقیقه مطالعه
پردازش و اعتبارسنجی فرم
اعتبارسنجی فرم، مرز بین یک اپ امن و یک اپ آسیبپذیر است.
فرم و پردازش
<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).