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
| Filter | Kegunaan |
|---|---|
FILTER_VALIDATE_EMAIL | Validasi email |
FILTER_VALIDATE_INT | Validasi bilangan bulat |
FILTER_VALIDATE_URL | Validasi URL |
FILTER_SANITIZE_SPECIAL_CHARS | Amankan 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).

