Home » PHP » Filter di PHP – Kode dan Contohnya

Filter di PHP – Kode dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Validating data = Tentukan apakah data dalam bentuk yang benar.

Sanitizing data = Hapus semua karakter ilegal dari data.

Ekstensi Filter PHP

Filter PHP digunakan untuk memvalidasi dan membersihkan input eksternal.

Ekstensi filter PHP memiliki banyak fungsi yang diperlukan untuk memeriksa input pengguna dan dirancang untuk membuat validasi data lebih mudah dan lebih cepat.

Fungsi filter_list() dapat digunakan untuk mendaftar apa yang ditawarkan ekstensi filter PHP:

Contoh :

<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
  border: 1px solid black;
  border-collapse: collapse;
}
th, td {
  padding: 5px;
}
</style>
</head>
<body>

<table>
  <tr>
    <td>Filter Name</td>
    <td>Filter ID</td>
  </tr>
  <?php
  foreach (filter_list() as $id =>$filter) {
    echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
  }
  ?>
</table>

</body>
</html>

Output :

Mengapa Menggunakan Filter?

Banyak aplikasi web menerima masukan eksternal. Input / data eksternal dapat berupa:

  • User input from a form(Masukan pengguna dari formulir)
  • Cookies
  • Web services data
  • Server variables
  • Database query results(Hasil kueri database)

Kita harus selalu memvalidasi data eksternal!
Data yang dikirimkan tidak valid dapat menyebabkan masalah keamanan dan merusak halaman web !
Dengan menggunakan filter PHP, kita dapat meyakini bahwa aplikasi kita mendapatkan input yang benar!

Fungsi PHP filter_var ()

Fungsi filter_var() memvalidasi dan membersihkan data.

Fungsi filter_var() memfilter variabel tunggal dengan filter yang ditentukan. Dibutuhkan dua bagian data:

  1. Variabel yang ingin diperiksa
  2. Jenis cek yang akan digunakan

Sanitasi String

Contoh berikut menggunakan fungsi filter_var() untuk menghapus semua tag HTML dari string:

Contoh :

<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>

Output :

Validasi Integer

Contoh berikut menggunakan fungsi filter_var() untuk memeriksa apakah variabel $int adalah integer. Jika $int adalah integer, output dari kode di bawah ini akan menjadi: “Integer is valid”. Jika $int bukan integer, outputnya akan menjadi: “Integer is not valid”:

Contoh :

<?php
$int = 100;

if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
  echo("Integer is valid");
} else {
  echo("Integer is not valid");
}
?>

Output :

Integer is valid

Tip: filter_var() dan Masalah Dengan 0

Dalam contoh di atas, jika $int disetel ke 0, fungsi di atas akan mengembalikan “Integer is not valid”. Untuk mengatasi masalah ini, gunakan kode di bawah ini:

Contoh :

<?php
$int = 0;

if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
  echo("Integer is valid");
} else {
  echo("Integer is not valid");
}
?>

Output :

Integer is valid

Validasi Alamat IP

Contoh berikut menggunakan fungsi filter_var() untuk memeriksa apakah variabel $ip adalah alamat IP yang valid:

Contoh :

<?php
$ip = "127.0.0.1";

if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
  echo("$ip is a valid IP address");
} else {
  echo("$ip is not a valid IP address");
}
?>

Output :

127.0.0.1 is a valid IP address

Sanitasi dan Validasi Alamat Email

Contoh berikut menggunakan fungsi filter_var() untuk terlebih dahulu menghapus semua karakter ilegal dari variabel $email, lalu periksa apakah itu alamat email yang valid:

Contoh :

<?php
$email = "john.doe@example.com";

// Hapus semua karakter ilegal dari email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);

// Validasi e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
  echo("$email adalah alamat email yang valid");
} else {
  echo("$email adalah alamat email yang tidak valid");
}
?>

Output :

john.doe@example.com adalah alamat email yang valid

Sanitasi dan Validasi URL

Contoh berikut menggunakan fungsi filter_var() untuk terlebih dahulu menghapus semua karakter ilegal dari URL, lalu periksa apakah $url adalah URL yang valid:

Contoh :

<?php
$url = "https://www.dosenit.com";

// Hapus semua karakter ilegal dari url
$url = filter_var($url, FILTER_SANITIZE_URL);

// Validasi url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
  echo("$url merupakan URL yang valid");
} else {
  echo("$url bukan URL yang valid");
}
?>

Output :

https://www.dosenit.com merupakan URL yang valid

You may also like