PHP Filter: Validasi dan Sanitasi Data

PHP menyediakan cara standar dan praktis untuk memvalidasi serta menyanitasi data melalui PHP Filter. Dengan fungsi filter_var() dan filter_input(), Anda bisa memeriksa dan membersihkan input tanpa menulis pola regular expression yang rumit.

Dua Peran Filter: Validasi dan Sanitasi

Penting memahami perbedaan keduanya: validasi memeriksa apakah data sesuai format (misalnya “apakah ini email yang benar?”), sedangkan sanitasi membersihkan data dari karakter yang tidak diinginkan.

Validasi Data

<?php
var_dump(filter_var("budi@contoh.com", FILTER_VALIDATE_EMAIL)); // email
var_dump(filter_var("https://situs.com", FILTER_VALIDATE_URL)); // url
var_dump(filter_var("123", FILTER_VALIDATE_INT));               // integer
?>

Jika data valid, filter mengembalikan nilainya; jika tidak, mengembalikan false. Karena itu, selalu gunakan operator !== saat memeriksa hasil yang bisa bernilai 0.

Sanitasi Data

Sanitasi berguna untuk membersihkan input sebelum ditampilkan atau disimpan:

<?php
$email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
$teks  = filter_var($_POST["nama"], FILTER_SANITIZE_SPECIAL_CHARS);
?>

Mengambil dan Memfilter Sekaligus

Fungsi filter_input() mengambil data dari $_GET, $_POST, atau lainnya sekaligus memfilternya — lebih ringkas dan aman:

<?php
$umur = filter_input(INPUT_POST, "umur", FILTER_VALIDATE_INT);
if ($umur === false) {
    echo "Umur tidak valid";
}
?>

Filter yang Sering Dipakai

FilterKegunaan
FILTER_VALIDATE_EMAILValidasi email
FILTER_VALIDATE_INTValidasi bilangan bulat
FILTER_VALIDATE_URLValidasi URL
FILTER_SANITIZE_SPECIAL_CHARSAmankan karakter khusus

Kesimpulan

PHP Filter menyederhanakan validasi dan sanitasi tanpa perlu regex rumit, menjadikan input pengguna lebih aman dan konsisten. Jadikan filter_var() dan filter_input() alat andalan Anda dalam menangani input.

Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

Baca Juga

Ali Akbar

Software Developer yang fokus mengembangkan aplikasi berbasis Web dan Desktop. Senang mempelajari teknologi baru terutama di bidang web design dan web development.

View all posts by Ali Akbar →

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *