Validasi Form Input Menggunakan PHP
Pada dasarnya validasi data ini terdiri dari 2 bagian, yaitu validasi data dari sisi user dan server, yang akan dibahas ini tentunya validasi data dari sisi server menggunakan script PHP. Untuk teknik atau penulisa kodenya sendiri Anda bisa memilih menggunakan 2 file atau 1 file seperti yang sudah pernah saya jelaskan pada artikel Mengirim Data ke Database Menggunakan Satu File PHP
Baca juga :
- Menampilkan Pesan Error Menggunakan Bootstrap dan PHP
- Mencegah Input Data Yang Sama ke MySQL Menggunakan PHP
Untuk tutorial kali ini saya akan memberikan contoh validasi form input dengan menggunakan 2 file php. File pertama nantinya bertugas mengirim input data dari user, dan file kedua bertugas memvalidasi, memproses dan untuk selanjutnya menyimpan datanya ke database. Sederhananya seperti itu, karena umumnya proses validasi ini juga ujung – ujungnya untuk menyimpan datanya ke database, jadi kita langsung praktekan saja bagiamana contoh validasinya kemudian ketika selesai melakukan eksekusi/perintah query untuk menyimpan data yang telah diperiksa tersebut ke database
Validasi Form Input Menggunakan PHP
- Buat sebuah database/tabel seperti berikut ini
- Buat sebuah file koneksi php seperti berikut ini
<?php $host="localhost"; $user="root"; $pass=""; $db="belajar"; $koneksi=mysqli_connect($host,$user,$pass); if(!$koneksi){ echo"Gagal Melakukan Koneksi:".mysqli_connect_error(); exit(); } $pilihdb= mysqli_select_db($koneksi,$db); if(!$pilihdb) { echo("Gagal memilih Database:".mysqli_connect_error()); } ?>
- Buat sebuah form input untuk menampung data/mengirimkan data dengan method POST
<html> <head> <titile>Form Cek Input</titile> </head> <body> <form action="cek_input.php" method="post"> <input type="text" name="data" id="data" required="" placeholder="Masukan nilai Input"> <input type="submit" name="kirim" id="kirim" value="kirim"> </form> </body> </html>
- Buat sebuah file untuk memvalidasi atau untuk memproses data yang dikirim dari form input untuk kemudian disimpan ke database.
<?php include('koneksi.php'); ?> <?php //akses file secara langsung tanpa melalui form tidak diperbolehkan if(isset($_POST['kirim'])==""){ echo "Akses data langsung gagal"; } //Cek data jika data kosong if ($_SERVER["REQUEST_METHOD"] == "POST") { if(empty($_POST["data"])){ echo "Data yang dikirimkan kosong"; }elseif(!preg_match("/^[a-zA-Z]*$/",$_POST["data"])){ echo "Data tidak sesuai ketentuan, masukan hanya alphabet saja"; }elseif (strlen($_POST["data"]) > 5) { echo "Data <b>$limit</b> Tidak boleh lebih dari 5 karakter"; }else{ //ketika kondisi benar terpenuhi echo "Input kamu benar<br/>"; $nama=test_input($_POST["data"]); $nama=mysqli_escape_string($koneksi,$nama); //bisa jalankan query atau menyimpan variabel untuk dijalankan nanti setelah validasi berikutny $perintah=sprintf("INSERT INTO belajar VALUES('null','%s')",$nama); $jalankan=mysqli_query($koneksi, $perintah); if(!$jalankan){ echo "Gagal menyimpan data=".mysqli_error(); }else{ echo "Berhasil Menyimpan data"; } } //jika ingin melanjutkan percabangan gunakan if(empty) tanpa request method disisni seperti contoh pertama } function test_input($value) { $data = trim($value); $data = stripslashes($value); $data = htmlspecialchars($value); return $data; } ?>
Sampai disini kita telah berhasil memvalidasi form input yang dikirim user menggunakan script PHP, untuk percabangannya mungkin akan lebih banyak terutama jika memang ada banyak yang perlu di validasi, seperti misalnya saja memvalidasi nilai input yang dikirim user supaya data yang dikirim tidak boleh sama seperti yang terdapat pada database
#Tambahan :
Kalian juga bisa menggunakan teknik true false didalam percabangan yang ada. Untuk Contoh pemakaiannya bisa kalian lihat pada aplikasi ppdb di root93
#RALAT
Untuk jenis validasi dengan if elseif else seperti pada contoh diatas, sebaiknya ada pengecekan data ulang. Maksudnya, kode percabangan yang saya jelaskan diatas sebenarnya memiliki kesalahan untuk kondisi terkahir pada percabangan. Sehingga akibatnya ketika data terakhir bernilai benar dan data pertama salah dia akan tetap melakukan ekseskusi ke database. Padahal ketika data kedua bernilai salah dan data pertama benar dia tidak mengeksekusi ke database. Seharusnya kalau ada salah satu data pada percabangan yang salah tidak boleh ada eksekusi ke database.
Untuk contoh kode bisa dilihat pada ralat yang terdapat pada halaman Mengirim Data ke Database Menggunakan Satu File PHP
kalau untuk limitasi data gmna? jika suatu data sudah ada pada database, maka tidak dapat menginputkan data yang sama lagi untuk kedua kalinya sebelum data sebelumnya dihapus..? terimakasih
ReplyDeleteBaca aja di https://www.root93.co.id/2019/07/mencegah-input-data-yang-sama-ke-mysql.html
Delete