Tutorial Belajar PHP Part 28 – Cara Membuat Validasi Form di PHP
Selamat datang di tutorial warung belajar, melanjutkan pembahasan dari seri tutorial php, dalam tutorial part 28 kita akan membahas mengenai cara membuat validasi form di php.
Validasi form digunakan untuk memeriksa apakah inputan user dibagian form agar sesuai dengan yang ditentukan oleh aplikasi, terdapat 2 jenis validasi form yang bisa anda gunakan pada aplikasi web yang anda buat, antara lain :
- Validasi di sisi client, validasi ini dilakukan di sisi browser, anda bisa menggunakan perintah di HTML untuk melakukan validasi di sisi client, silahkan baca tutorial kami sebelumnya mengenai Membuat form validasi dengan HTML 5
- Validasi di sisi server, validasi ini dilakukan setelah data diterima oleh server, pengecekan validasi data dilakukan oleh program di sisi server, seperti menggunakan php yang akan kita bahas kali ini.
Form validasi ini sangat diperlukan pada saat anda membuat form dalam sebuah aplikasi, karena anda harus mengatur inputan yang harus diisikan oleh pengguna aplikasi serta datanya juga harus sesuai yang ditentukan oleh sistem, semisal inputan nama tidak boleh kosong, inputan email harus valid, atau inputan yang hanya boleh diisi oleh angka saja seperti nomor telp, dan beberapa validasi form yang lain.
Berikut ini kita akan buat contoh pengguaan validasi form dengan menggunakan php, perhatikan skrip dibawah ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 |
<!DOCTYPE HTML> <html> <head> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> <style> .warning {color: #FF0000;} </style> </head> <body> <?php $error_nama = ""; $error_email = ""; $error_web = ""; $error_pesan = ""; $error_telp = ""; $nama = ""; $email = ""; $web = ""; $pesan = ""; $telp = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["nama"])) { $error_nama = "Nama tidak boleh kosong"; } else { $nama = cek_input($_POST["nama"]); if (!preg_match("/^[a-zA-Z ]*$/",$nama)) { $nameErr = "Inputan Hanya boleh huruf dan spasi"; } } if (empty($_POST["email"])) { $error_email = "Email tidak boleh kosong"; } else { $email = cek_input($_POST["email"]); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $error_email = "Format email Invalid"; } } if (empty($_POST["pesan"])) { $error_pesan = "Pesan tidak boleh kosong"; } else { $pesan = cek_input($_POST["pesan"]); } if (empty($_POST["web"])) { $error_web = "Website tidak boleh kosong"; } else { $web = cek_input($_POST["web"]); if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$web)) { $error_web = "URL tidak valid"; } } if (empty($_POST["telp"])) { $error_telp = "Telp tidak boleh kosong"; } else { $telp = cek_input($_POST["telp"]); if(!is_numeric($telp)) { $error_telp = 'Nomor HP hanya boleh angka'; } } } function cek_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> <div class="row"> <div class="col-md-6"> <div class="card"> <div class="card-header"> Contoh Validasi Form dengan PHP </div> <div class="card-body"> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> <div class="form-group row"> <label for="nama" class="col-sm-2 col-form-label">Nama</label> <div class="col-sm-10"> <input type="text" name="nama" class="form-control <?php echo ($error_nama !="" ? "is-invalid" : ""); ?>" id="nama" placeholder="Nama" value="<?php echo $nama; ?>"><span class="warning"><?php echo $error_nama; ?></span> </div> </div> <div class="form-group row"> <label for="email" class="col-sm-2 col-form-label">Email</label> <div class="col-sm-10"> <input type="text" name="email" class="form-control <?php echo($error_email !="" ? "is-invalid" : ""); ?>" id="email" placeholder="email" value="<?php echo $email; ?>"><span class="warning"><?php echo $error_email; ?></span> </div> </div> <div class="form-group row"> <label for="web" class="col-sm-2 col-form-label">Website</label> <div class="col-sm-10"> <input type="text" name="web" class="form-control <?php echo($error_web !="" ? "is-invalid" : ""); ?>" id="web" placeholder="web" value="<?php echo $web; ?>"><span class="warning"><?php echo $error_web; ?></span> </div> </div> <div class="form-group row"> <label for="telp" class="col-sm-2 col-form-label">Telp</label> <div class="col-sm-10"> <input type="text" name="telp" class="form-control <?php echo($error_telp !="" ? "is-invalid" : ""); ?>" id="telp" placeholder="telp" value="<?php echo $telp; ?>"><span class="warning"><?php echo $error_telp; ?></span> </div> </div> <div class="form-group row "> <label for="pesan" class="col-sm-2 col-form-label">Pesan</label> <div class="col-sm-10"> <textarea name="pesan" class="form-control <?php echo($error_pesan !="" ? "is-invalid" : ""); ?>"><?php echo $pesan; ?></textarea><span class="warning"><?php echo $error_pesan; ?></span> </div> </div> <div class="form-group row"> <div class="col-sm-10"> <button type="submit" class="btn btn-primary">Sign in</button> </div> </div> </form> </div> </div> </div> </div> <?php echo "<h2>Your Input:</h2>"; echo "Nama = ".$nama; echo "<br>"; echo "Email = ".$email; echo "<br>"; echo "Website = ".$web; echo "<br>"; echo "Telp = ".$telp; echo "<br>"; echo "Pesan = ".$pesan; ?> </body> </html> |
Skripnya cukup panjang, karena kita menggunakan bootstrap yang digunakan untuk menata tampilan form agar lebih menarik, hasilnya jika dibuka di browser adalah sebagai berikut :
Pada contoh ini, saya coba isikan dengan isian seperti gambar dibawah ini :
Keterangan :
- Bagian nama kita isi “Aris Samsudin” sehingga bagian kolom nama tidak nampak error karena kita isi bagian form ini.
- Bagian email kita isi “warungbelajar” sehingga menampilkan error karena tidak sesuai dengan format email
- Bagian website kita isi dengan “warungbelajar.net” sehingga menampilkan error karena tidak sesuai dengan format alamat url
- Bagian telp menampilkan error karena kita mengisikan karakter selain angka
- Bagian pesan menampilkan error karena tidak diisi
Kita akan membahas satu persatu untuk validasi di masing – masing bagian form yang ada di contoh diatas.
Validasi Method Form
Pada line 24 kita menuliskan perintah if ($_SERVER[“REQUEST_METHOD”] == “POST”), perintah ini digunakan untuk melakukan pengecekan apakah formnya sudah di klik bagian tombol submit, dan memastikan datanya dikirim menggunakan method post.
Validasi bagian inputan nama
- Pada line 111 kita membuat inputan dengan type text, dengan name=”nama”
1 2 |
<input type="text" name="nama" class="form-control <?php echo ($error_nama !="" ? "is-invalid" : ""); ?>" id="nama" placeholder="Nama" value="<?php echo $nama; ?>"><span class="warning"><?php echo $error_nama; ?></span> |
- Pengecekan validasinya ada di line 26 kita membuat validasi apakah inputan nama pada form diisi, jika tidak diisi maka akan menampilkan error pada bagian nama dan menampilkan “Nama tidak boleh kosong” (Line 28), untuk membuat validasi inputan nama tidak boleh kosong gunakan perintah if(empty($_POST[‘nama’])), yang mengecek inputan nama apakah kosong, jika kosong maka isikan keterangan pada variabel $error_nama
1 2 3 4 |
if (empty($_POST["nama"])) { $error_nama = "Nama tidak boleh kosong"; } |
- Berikutnya pada line 32 kita akan memanggil function cek_input() dimana fungsi kita gunakan untuk menghilangkan spasi yang ada di sebelum dan sesudah isian inputan, trim digunakan untuk menghilangkan spasi di awal dan akhir dari inputan, pembahasan trim bisa dibaca di tutorial kita sebelumnya Manipulasi string menggunakan fungsi di PHP, fungsi stripslashes digunakan untuk menghapus escape character backslash \ dari string, fungsi htmlspecialchars() digunakan untuk mengubah beberapa character entity menjadi nama entity.
1 2 3 4 5 6 |
function cek_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } |
- Pengecekan validasi inputan nama berikutnya adalah melakukan validasi pada inputan nama hanya boleh berupa huruf dan spasi saja, tidak boleh diisi dengan angka, perhatikan pada line 33, jika bagian nama diisi dengan angka maka akan menampilkan pesan error “Inputan Hanya boleh huruf dan spasi”.
1 2 3 4 |
if (!preg_match("/^[a-zA-Z ]*$/",$nama)) { $nameErr = "Inputan Hanya boleh huruf dan spasi"; } |
- Berikutnya perhatikan line 111 dilakukan pengecekan pada variabel $error_nama apakah terdapat error, jika terdapat error maka akan menambahkan class is-invalid dibagian kolom inputan nama sehingga form bagian nama akan berwarna merah, serta menampilkan pesan errornya yang sudah disimpan di bagian variabel $error_name.
1 2 |
<input type="text" name="nama" class="form-control <?php echo ($error_nama !="" ? "is-invalid" : ""); ?>" id="nama" placeholder="Nama" value="<?php echo $nama; ?>"><span class="warning"><?php echo $error_nama; ?></span> |
Validasi bagian email
- Pada Line 18 kita membuat inputan dengan menggunakan type=”text” dan name=”email”
1 2 |
<input type="text" name="email" class="form-control <?php echo($error_email !="" ? "is-invalid" : ""); ?>" id="email" placeholder="email" value="<?php echo $email; ?>"><span class="warning"><?php echo $error_email; ?></span> |
- Pada Line 39 kita membuat validasi inputan email harus diisi dengan menggunakan fungsi empty(), jika tidak diisi maka akan menampilkan error “Email tidak boleh kosong”.
1 2 3 4 |
if (empty($_POST["email"])) { $error_email = "Email tidak boleh kosong"; } |
- Pada Line 46 kita mengecek apakah inputan form bagian email ini isinya sudah sesuai format email yang valid, jika tidak maka akan menampilkan tulisan “Format email invalid”
1 2 3 4 |
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $error_email = "Format email Invalid"; } |
Validasi bagian pesan
- Pada line 125 kita membuat inputan dengan type=”text” dan name=”web”
1 2 |
<textarea name="pesan" class="form-control <?php echo($error_pesan !="" ? "is-invalid" : ""); ?>"> <?php echo $pesan; ?></textarea><span class="warning"><?php echo $error_pesan; ?></span> |
- Pada line 63 kita membuat validasi untuk bagian inputan web harus diisi dengan menggunakan fungsi empty, jika tidak diisi maka akan menampilkan pesan error “Website tidak boleh kosong”.
1 2 3 4 |
if (empty($_POST["web"])) { $error_web = "Website tidak boleh kosong"; } |
- Pada line 70 kita membuat validasi untuk bagian inputan web harus diisi dengan url web yang valid.
1 2 3 4 |
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$web)) { $error_web = "URL tidak valid"; } |
Validasi bagian telp
- Pada line 134 kita membuat inputan untuk bagian telp, dengan type=”text” dan name=”telp”
1 2 3 |
<input type="text" name="telp" class="form-control <?php echo($error_telp !="" ? "is-invalid" : ""); ?>" id="telp" placeholder="telp" value="<?php echo $telp; ?>"><span class="warning"><?php echo $error_telp; ?></span> |
- Pada line 76 kita melakukan validasi inputan bagian telp tidak boleh kosong.
1 2 3 4 |
if (empty($_POST["telp"])) { $error_telp = "Telp tidak boleh kosong"; } |
- Pada line 84 kita menuliskan validasi inputan bagian telp hanya boleh angka saja, kita gunakan fungsi is_numeric(), untuk memastikan inputan berupa angka.
1 2 3 4 |
if(!is_numeric($telp)) { $error_telp = 'Nomor HP hanya boleh angka'; } |
Validasi bagian pesan
- Pada line 141 kita membuat textarea dengan name=”pesan”.
1 2 3 4 |
<textarea name="pesan" class="form-control <?php echo($error_pesan !="" ? "is-invalid" : ""); ?>"> <?php echo $pesan; ?></textarea><span class="warning"> <?php echo $error_pesan; ?></span> |
- Pada line 52 kita membuat validasi untuk mengecek apakah inputan bagian pesan diisi kita gunakan fungsi empty(), jika tidak diisi maka akan menampilkan tulisan “pesan tidak boleh kosong”
1 2 3 4 |
if (empty($_POST["pesan"])) { $error_pesan = "Pesan tidak boleh kosong"; } |
Jadi seperti itu teman – teman pembahasan mengenai contoh penggunaan validasi form di php, jika ada yang ingin didiskusikan silahkan di kolom komentar, sekian dulu sampai jumpa di tutorial php selanjutnya.
ANDA INGIN SERIUS BELAJAR PEMROGRAMAN PHP ?
Seperti yang anda ketahui bahwa saat ini skill di bidang pemrograman sangatlah dibutuhkan, salah satunya adalah pemograman PHP.
Untuk anda yang ingin serius belajar pemrograman PHP, Warung Belajar Memiliki Beberapa Paket Tutorial yang bisa membantu anda dalam belajar Pemrograman PHP, dari mulai step – step dasar hingga mampu membuat aplikasi berbasis web dengan menggunakan PHP.
Paket Tutorial ini berisi video tutorial belajar pemrograman berbahasa indonesia, cocok sekali untuk anda yang sedang belajar pemrograman PHP, bahkan untuk orang awam sekalipun.
Paket Tutorial ini juga dilengkapi dengan study kasus yang akan mempermudah pemahaman anda dalam belajar pemrograman, Mari berinvestasi untuk menambah skill dalam menguasai Pemrograman PHP
-
Tutorial Seminggu Menguasai PHP Dan MySQL
Rp80,000 Add to cart -
Tutorial HTML White Box – Panduan Belajar HTML Lengkap
Rp70,000 Add to cart -
Tutorial Web Programming Black Box – Tutorial Belajar HTML, CSS, Bootstrap 4, PHP OOP, dan MySQL – Study Kasus Membuat Aplikasi Sistem Management Stok Barang
Rp120,000 Add to cart -
Tutorial Membuat Aplikasi Dengan Codeigniter, Javascript Dan Ajax Jquery
Rp95,000 Add to cart -
Tutorial Membangun Layanan SMS Gateway Berbasis Client Server
Rp145,000 Add to cart -
Tutorial Membuat Aplikasi Dinamis Dengan HTML CSS Boostrap PHP Dan MySQL
Rp120,000 Add to cart -
TUTORIAL MEMBANGUN APLIKASI BERBASIS WEB DENGAN PHP MYSQL DAN BOOTSTRAP
Rp95,000 Add to cart -
Tutorial Tips Dan Trik Aplikatif Master PHP
Rp85,000 Add to cart
Kalau validasinya dilakukan pada file yang bebeda bagaimana ya? Atau kalau validasinya tetap di dalam satu file yang sama dengan form, tetapi actionnya ke file proses yang lain apakah bisa?
Terima kasih, materi-materinya bagus dan mudah untuk dipahami.
caranya sama, yang penting dicantumkan value name pada bagian inputan formnya, sebagai acuan bagian itu yang divalidasi
Sangat membantu gan informasinya.
Terima kasih.
saya masih kebingungan membuat form validasi, maklum masih awam tapi pengen belajar membuat form seperti ini
silahkan kak, terima kasih sudah belajar di warungbelajar