Kali ini kita akan mempelajari cara membuat kolom input required dan membuat pesan kesalahan jika diperlukan.
PHP – Form Required
Dari tabel aturan validasi di halaman sebelumnya, kita melihat bahwa kolom “Nama”, “E-mail”, dan “Gender” harus diisi. Form ini tidak boleh kosong dan harus diisi dalam bentuk HTML.
Field | Aturan Validasi |
---|---|
Name | Required. + Hanya boleh berisi huruf dan spasi |
Required. + Harus berisi alamat email yang valid (with @ dan.) | |
Website | Optional. Jika ada, itu harus berisi URL yang valid |
Comment | Optional. Bidang masukan multi-baris (area teks) |
Gender | Required. Harus memilih satu |
Dalam kode berikut kita telah menambahkan beberapa variabel baru: $nameErr, $emailErr, $genderErr dan $websiteErr. Variabel kesalahan ini akan menyimpan pesan kesalahan untuk field yang wajib diisi. Kita juga akan menambahkan pernyataan if else
untuk setiap variabel $_POST. Hal ini memeriksa apakah variabel $_POST kosong (dengan fungsi PHP empty()
). Jika kosong, pesan kesalahan disimpan dalam variabel kesalahan yang berbeda dan jika tidak kosong, pesan ini akan mengirimkan data masukan pengguna melalui fungsi 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 – Menampilkan Pesan Kesalahan
Sekarang kita akan menambahkan sedikit skrip setelah setiap field yang diperlukan, yang menghasilkan pesan kesalahan yang benar jika diperlukan (yaitu jika pengguna mencoba mengirimkan formulir tanpa mengisi field yang diperlukan/required):
Contoh :
<!DOCTYPE HTML> <html> <head> <style> .error {color: #FF0000;} </style> </head> <body> <?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"]); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <h2>PHP Form Validation Example</h2> <p><span class="error">* required field</span></p> <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> <?php echo "<h2>Your Input:</h2>"; echo $name; echo "<br>"; echo $email; echo "<br>"; echo $website; echo "<br>"; echo $comment; echo "<br>"; echo $gender; ?> </body> </html>