Biểu mẫu PHP - Các trường bắt buộc
Chương này trình bày cách tạo các trường nhập bắt buộc 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 tôi 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 ở dạng 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 đều 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
, $genderErr
và $websiteErr
. Các biến lỗi này sẽ chứa thông báo lỗi cho các trường bắt buộc. Chúng tôi cũng đã thêm câu lệnh if else
cho mỗi biến $_POST
. Điều này kiểm tra xem biến $_POST
có trống không (với hàm PHP empty()
). Nếu nó trống, thông báo lỗi sẽ đượ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 hàm test_input()
:
// 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 đó, ở dạng HTML, chúng tôi thêm một đoạn mã nhỏ sau mỗi trường bắt buộc để 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):
Ví 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>
Chạy ví dụ »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 điền vào, " Trường Trang web có chứa URL hợp lệ không?".