PHP Form Validation - Bidang wajib diisi

Bab ini menunjukkan bagaimana membuat bidang input wajib diisi, serta membuat pesan kesalahan yang digunakan saat diperlukan.

PHP - Bidang input

Dari aturan verifikasi di bab sebelumnya, kami melihat bahwa bidang "Name", "Email" serta "Gender" adalah diperlukan. Bidang ini tidak boleh kosong dan harus diisi di dalam formulir HTML.

Bidang Aturan verifikasi
Nama Diperlukan. Harus mengandung huruf dan spasi.
Email Diperlukan. Harus mengandung alamat email yang valid (termasuk @ dan .).
Laman web Opsional. Jika diisi, maka harus mengandung URL yang valid.
Komentar Opsional. Bidang input berbaris (kotak teks).
Jantina Diperlukan. Harus memilih salah satu.

Dalam bab sebelumnya, semua bidang input adalah opsional.

Dalam kod di bawah ini, kami menambahkan beberapa variabel baru: $nameErr, $emailErr, $genderErr serta $websiteErr. Variabel kesalahan ini akan menyimpan pesan kesalahan bidang permintaan. Kita juga menambahkan pernyataan if else untuk setiap $_POST variabel. Pernyataan ini memeriksa apakah $_POST variabel kosong (melalui fungsi PHP empty()). Jika kosong, pesan kesalahan akan disimpan di variabel kesalahan yang berbeda. Jika tidak kosong, data input pengguna akan dikirim melalui fungsi test_input():

<?php}}
// Tentukan variabel dan atur nilai mereka menjadi kosong
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Nama diperlukan";
  } else {
    $name = test_input($_POST["name"]);
  }
  if (empty($_POST["email"])) {
    $emailErr = "Email diperlukan";
  } 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 = "Jantina diperlukan";
  } else {
    $gender = test_input($_POST["gender"]);
  }
}
?>

PHP - Tampilkan Pesan Kesalahan

Dalam formulir HTML, kami menambahkan beberapa skrip di belakang setiap bidang yang diminta. Jika perlu, pesan kesalahan yang sesuai akan dihasilkan (jika pengguna mencoba mengirim formulir tanpa mengisi bidang wajib):

Contoh

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Nama: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mel:
<input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
Laman Web:
<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
<label>Komentar: <textarea name="comment" rows="5" cols="40"></textarea></label>
<br><br>
Jantina:
<input type="radio" name="gender" value="female">Wanita
<input type="radio" name="gender" value="male">Lelaki
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit"> 
</form>

Jalankan Contoh

Berikut adalah pengesahan data input, iaitu 'Adakah medan Nama hanya mengandungi huruf dan ruang?', serta 'Adakah medan E-mail mengandungi sintaks alamat e-mel yang sah?', dan jika medan Website diisi, 'Adakah medan ini mengandungi URL yang sah?'.