Membuat Fungsi Validasi Form dengan PHP
Dalam artikel kali ini kita akan membuat function untuk validasi form , fungsi ini dibuat dengan menggunakan PHP , kita ketahui bersama di dalam php sudah terdapat fungsi trim, stripslashes , htmlspecialchars dan mysqli_real_escape_string , yang merupakan proses validasi dasar untuk form :
Prinsip dasar validasi form adalah mengecek input data dari pengguna dengan beberapa tes kemudian membuat pembetulan dengan cara konversi data dan eliminasi data. Jadi fungsi dari proses validasi form adalah untuk memperoleh ketepatan data dan demi keamanan situs web.
Contoh Code HTML dengan Validasi Dasar PHP :
<?php
// membuat variabel yang diset dengan nilai kosong
$nama = $email = $gender = $komentar = $website = "";
//membuat fungsi untuk validasi input form
function validate_data($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
//mengambil data dari form dengan metode post
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nama = validate_data($_POST["nama"]);
$email = validate_data($_POST["email"]);
$website = validate_data($_POST["website"]);
$komentar = validate_data($_POST["komentar"]);
$gender = validate_data($_POST["gender"]);
}
?>
<h2>Contoh Validasi Form dengan PHP</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="nama">
<br><br>
E-mail: <input type="text" name="email">
<br><br>
Website: <input type="text" name="website">
<br><br>
Comment: <textarea name="komentar" rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="perempuan">Perempuan
<input type="radio" name="gender" value="laki-laki">Laki-laki
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
1.Penggunaan fungsi htmlspecialchars() pada form action untuk melindungi variabel global $_SERVER["PHP_SELF"] dari html injection. Dengan demikian, parameter- parameter ilegal yang disisipkan pada URL akan diubah ke format karakter html. Misal <script> menjadi </script>
2. Penggunaan fungsi trim() untuk menghapus karakter yang tidak diperlukan seperti ekstra spasi, tab dan baris baru.
3. Penggunaan fungsi stripslashes() untuk membuang tanda backslash (/) dari input yang dimasukkan oleh pengguna
4. Penggunaan fungsi htmlspecialchars() untuk mengubah karakter-karakter khusus html seperti < menjadi < dan > menjadi >
Fungsi PHP untuk mencegah Injeksi SQL dan XSS
Saya mencoba membuat PHP seaman mungkin, dan dua hal utama yang saya coba hindari adalah
- injeksi mySQL
- Skrip Lintas Sisi (XSS)
Dalam Kasus yang lebih kompleks lagi , kita perlu menambahkan fungsi mysqli_real_escape_string , fungsi yang digunakan pada mysql untuk membatasi karakter dari indikasi sql injection , Perhatikan Code Validasi Berikut :
<?php
if( isset( $_POST['submit_form'] ) )
{
function validate_data($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = strip_tags($data);
$data = htmlspecialchars($data);
return $data;
}
$name = validate_data($_POST['username'] );
$emailid = validate_data($_POST['useremail'] );
$password = validate_data($_POST['user_password'] );
$v_name = mysqli_real_escape_string($koneksi, $name);
$v_emailid = mysqli_real_escape_string($koneksi, $emailid);
$v_password = mysqli_real_escape_string($koneksi, $password);
echo "$v_name<br/>$v_emailid<br/>$v_password";
}
?>