فصل سوم: فرم، سشن و کوکی

فرم HTML و $_POST/$_GET

دریافت داده از فرم‌های HTML

یکی از پرکاربردترین وظایف PHP دریافت اطلاعاتی است که کاربر از طریق فرم ارسال می‌کند. برای این کار از دو متغیر سراسری (superglobal) به نام‌های $_GET و $_POST استفاده می‌شود. زمانی که ویژگی method فرم برابر با get باشد، داده‌ها در آدرس (URL) قرار می‌گیرند و در $_GET در دسترس‌اند؛ اما در حالت post داده‌ها در بدنه‌ی درخواست ارسال می‌شوند و امنیت و ظرفیت بیشتری دارند.

<form action="process.php" method="post">
  <input type="text" name="username">
  <input type="email" name="email">
  <button type="submit">ارسال</button>
</form>

در فایل process.php می‌توانید مقادیر ارسال‌شده را بخوانید:

<?php
$username = $_POST['username'] ?? '';
$email = $_POST['email'] ?? '';

if (empty($username)) {
    echo "نام کاربری الزامی است";
} else {
    echo "خوش آمدید " . htmlspecialchars($username);
}
?>

استفاده از عملگر ?? باعث می‌شود اگر کلید مورد نظر در آرایه وجود نداشت، برنامه با خطا متوقف نشود و مقدار پیش‌فرض جایگزین شود. همچنین همیشه باید داده‌های ورودی کاربر را قبل از نمایش با تابع htmlspecialchars() پردازش کنید تا از حملات XSS جلوگیری شود؛ این موضوع را در درس امنیت با جزئیات بیشتری بررسی می‌کنیم. به‌طور کلی از GET برای درخواست‌های جستجو و از POST برای ارسال فرم‌های حساس مانند ثبت‌نام استفاده کنید.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.