By GokiSoft.Com| 18:01 21/06/2020|
Tài Liệu PHP

PHP Form Required

Bài này sẽ chỉ cho ta cách để required các trường input và hiện thông báo nếu cần.


PHP - Required

Từ bảng validation rules trong bài trước, chúng ta thấy rằng các trường "Name", "E-mail", và "Gender" là required. Tức các trường này không được để trống.

TrườngValidation Rules
NameRequired. + Chỉ chứa chữ cái và khoảng trắng
E-mailRequired. + Phải chứa email hợp lệ (có @ và.)
WebsiteKhông bắt buộc. Nếu có, nó phải chứa URL hợp lệ
CommentKhông bắt buộc. Trường nhập nhiều dòng (textarea)
GenderRequired. Phải chọn một

Trong đoạn code sau có thêm một số biến mới: $nameErr, $emailErr, $genderErr, và $websiteErr. Các biến này sẽ giữ các thông báo lỗi cho các trường required. Chúng ta cũng thêm lệnh if else cho mỗi biến $_POST để kiểm tra xem biến $_POST có empty không (với hàm empty()). Nếu empty, thông báo lỗi được lưu trữ thông qua các biến trên. Nếu không empty, nó sẽ gửi dữ liệu input của người dùng thông qua hàm test_input():

<?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ị Error Messages (thông báo lỗi cho trường required input)

Trong form, ta add thẻ span vào sau mỗi trường input để hiển thị error message nếu người dùng submit form mà không điền vào các trường input đó:

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>

Bước tiếp theo là validate các trường input, đó là "Trường Name chỉ được chứa chữ cái và khoảng trắng đúng không?", và "Trường E-mail có đúng cú pháp địa chỉ e-mail không", "Trường Website nhưng có chứa URL hợp lệ không?".