Memvalidasi dan menyanitasi input pengguna adalah keharusan demi keamanan. PHP menyediakan cara standar untuk ini melalui PHP Filter Function, terutama filter_var() dan filter_input(). Artikel ini merangkum filter yang paling berguna.
Dua Jenis Filter
Ada dua kategori: filter validasi (memeriksa format, diawali FILTER_VALIDATE_) dan filter sanitasi (membersihkan data, diawali FILTER_SANITIZE_).
Filter Validasi
<?php
// mengembalikan nilai jika valid, atau false jika tidak
filter_var("budi@contoh.com", FILTER_VALIDATE_EMAIL);
filter_var("https://situs.com", FILTER_VALIDATE_URL);
filter_var("123", FILTER_VALIDATE_INT);
filter_var("3.14", FILTER_VALIDATE_FLOAT);
?>
Contoh penggunaan dalam kondisi:
<?php
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Email valid";
}
?>
Filter Sanitasi
<?php $email = filter_var($input, FILTER_SANITIZE_EMAIL); $teks = filter_var($input, FILTER_SANITIZE_SPECIAL_CHARS); $angka = filter_var($input, FILTER_SANITIZE_NUMBER_INT); ?>
Mengambil Langsung dari Input
Fungsi filter_input() lebih aman karena mengambil sekaligus memfilter data superglobal:
<?php $umur = filter_input(INPUT_POST, "umur", FILTER_VALIDATE_INT); $email = filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL); ?>
Tabel Filter Populer
| 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 Function menyederhanakan validasi dan sanitasi tanpa regex rumit. Jadikan filter_var() dan filter_input() kebiasaan setiap kali menangani input dari pengguna.
Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

