PHP Forms - Các trường bắt buộc
Chương này trình bày cách yêu cầu các trường nhập và tạo thông báo lỗi nếu cần.
PHP - Các trường bắt buộc
Từ bảng quy tắc xác thực ở trang trước, chúng ta thấy rằng các trường "Tên", "E-mail" và "Giới tính" là bắt buộc. Các trường này không được để trống và phải được điền vào biểu mẫu HTML.
Field | Validation Rules |
---|---|
Name | Required. + Must only contain letters and whitespace |
Required. + Must contain a valid email address (with @ and .) | |
Website | Optional. If present, it must contain a valid URL |
Comment | Optional. Multi-line input field (textarea) |
Gender | Required. Must select one |
Trong chương trước, tất cả các trường đầu vào là tùy chọn.
Trong đoạn mã sau, chúng tôi đã thêm một số biến mới: $ nameErr, $ emailErr, $ worldErr và $ websiteErr. Các biến lỗi này sẽ lưu giữ các thông báo lỗi cho các trường bắt buộc. Chúng tôi cũng đã thêm một if else
câu lệnh cho mỗi biến $ _POST. Điều này sẽ kiểm tra xem biến $ _POST có trống không (với empty()
hàm PHP). Nếu nó trống, một thông báo lỗi được lưu trữ trong các biến lỗi khác nhau và nếu nó không trống, nó sẽ gửi dữ liệu đầu vào của người dùng thông qua test_input()
hàm:
<?php
// define variables and set to empty values
$nameErr = $emailErr
= $genderErr = $websiteErr = "";
$name = $email = $gender = $comment =
$website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"]))
{
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
}
if (empty($_POST["website"]))
{
$website = "";
} else {
$website = test_input($_POST["website"]);
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if
(empty($_POST["gender"])) {
$genderErr = "Gender is required";
} else
{
$gender = test_input($_POST["gender"]);
}
}
?>
PHP - Hiển thị thông báo lỗi
Sau đó, trong biểu mẫu HTML, chúng tôi thêm một tập lệnh nhỏ sau mỗi trường bắt buộc, sẽ tạo ra thông báo lỗi chính xác nếu cần (đó là nếu người dùng cố gắng gửi biểu mẫu mà không điền vào các trường bắt buộc):
Thí dụ
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail:
<input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
Website:
<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="other">Other
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
Bước tiếp theo là xác thực dữ liệu đầu vào, đó là "Trường Tên chỉ chứa các chữ cái và khoảng trắng?", Và "Trường E-mail có chứa cú pháp địa chỉ e-mail hợp lệ không?", Và nếu được điền, " Trường Trang web có chứa URL hợp lệ không? ".