PHP Form Validation - Mandamang Field

Ito ay nagpapakita kung paano gumawa ng mandamang input field at gumawa ng mensahe ng error na kinakailangan.

PHP - Input Field

Sa patakaran ng verifika sa nakaraang seksyon, nakikita naming ang "Name", "E-mail" at "Gender" field ay dapat. Ang mga field na ito ay hindi puwedeng mawala at dapat ilagay sa HTML form.

Field Patakaran ng Verifika
Name Dapat. Dapat maglaman ng titik at espasyo.
E-mail Dapat. Dapat maglaman ng wastong email address (kasama ang @ at .).
Website Opsyonal. Kung napili, dapat itong maglaman ng wastong URL.
Comment Opsyonal. Maraming pahaba ng input field (text box).
Gender Dapat. Dapat piliin ang isang item.

Sa nakaraang seksyon, lahat ng input field ay opsyonal.

Sa nasabing kodigo, dagdag naming ng ilang bagong variable: $nameErr, $emailErr, $genderErr at $websiteErr. Ang mga error variable na ito ay mag-iimbak ng mga mensahe ng error ng hiniling na field. Nagdagdag din naming ng isang if else statement para sa bawat $_POST variable. Ang statement na ito ay sumusuri kung ang $_POST variable ay walang laman (sa pamamagitan ng PHP empty() function). Kung walang laman, ang mensahe ng error ay ibinibigay sa iba't ibang error variable. Kung may laman, ang user input data ay ipapadala sa pamamagitan ng test_input() function:

<?php}}
// Itinalaga ang variable at itong ginawang walang halaga
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Ang pangalan ay kinakailangan";
  } else {
    $name = test_input($_POST["name"]);
  }
  if (empty($_POST["email"])) {
    $emailErr = "Ang email ay kinakailangan";
  } 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 = "Ang kasarian ay kinakailangan";
  } else {
    $gender = test_input($_POST["gender"]);
  }
}
?>

PHP - Ipakita ang mensahe ng error

Sa HTML form, nagdagdag kami ng isang script sa kahit anong pinagkakailanganang larawan sa bawat larawan na hiniling.

实例

<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>
<label>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
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit"> 
</form>

Run Instance

Next is the validation of input data, that is, 'Is the 'Name' field only letters and spaces?', and 'Does the 'E-mail' field contain a valid email address syntax?', and if the 'Website' field is filled in, 'Does this field contain a valid URL?'