Forms - Required Fields

وقتی کاربر یک فرم را پر می‌کند، بعضی از فیلدها باید اجباری (Required) باشند.
با PHP می‌توانیم بررسی کنیم که آیا این فیلدها خالی هستند یا خیر، و در صورت خالی بودن پیام خطا نشان دهیم.

🔹 یک فرم ساده با فیلدهای اجباری

<!DOCTYPE html> <html> <body> <?php // تعریف متغیرها $name = $email = $gender = ""; $nameErr = $emailErr = $genderErr = ""; // پردازش داده‌ها بعد از ارسال فرم if ($_SERVER["REQUEST_METHOD"] == "POST") { // بررسی نام if (empty($_POST["name"])) { $nameErr = "Name is required"; } else { $name = htmlspecialchars($_POST["name"]); } // بررسی ایمیل if (empty($_POST["email"])) { $emailErr = "Email is required"; } else { $email = htmlspecialchars($_POST["email"]); } // بررسی جنسیت if (empty($_POST["gender"])) { $genderErr = "Gender is required"; } else { $gender = htmlspecialchars($_POST["gender"]); } } ?> <h2>PHP Form - Required Fields</h2> <p><span style="color:red;">* required field</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> Name: <input type="text" name="name" value="<?php echo $name; ?>"> <span style="color:red;">* <?php echo $nameErr; ?></span> <br><br> Email: <input type="text" name="email" value="<?php echo $email; ?>"> <span style="color:red;">* <?php echo $emailErr; ?></span> <br><br> Gender: <input type="radio" name="gender" value="female" <?php if ($gender=="female") echo "checked"; ?>> Female <input type="radio" name="gender" value="male" <?php if ($gender=="male") echo "checked"; ?>> Male <span style="color:red;">* <?php echo $genderErr; ?></span> <br><br> <input type="submit" value="Submit"> </form> </body> </html>

🔹 خروجی

  1. اگر کاربر روی Submit بزند ولی چیزی وارد نکند، خطاها نمایش داده می‌شوند:

Name is required Email is required Gender is required
  1. اگر همه فیلدها پر باشند، اطلاعات کاربر پردازش و نمایش داده می‌شود.

✅ نکات مهم

  • همیشه قبل از ذخیره یا استفاده از داده‌ها بررسی کنید که خالی نباشند.

  • برای امنیت بیشتر از htmlspecialchars() یا filter_var() استفاده کنید.

  • می‌توانید از ویژگی HTML5 required هم استفاده کنید، ولی اعتبارسنجی سمت سرور (PHP) ضروری است.