PHP filtri se uporabljajo za preverjanje in filtriranje podatkov, ki prihajajo iz nevarnih virov, kot je uporabniški vnos. Za uporabo teh filtrov ni potrebno dodatno nameščanje, ker so že privzeto omogočeni. Pri uporabi naprednih filtrov lahko uporabimo različne možnosti, da prilagodimo filtre za validiranje in sanacije vhodnih podatkov. Tukaj si bomo ogledali nekaj naprednejših načinov uporabe filtrov.
Na obnašanje teh filtrov vplivajo nastavitve v php.ini datoteki:
| ime | opis | privzeto | spremenljivka |
|---|---|---|---|
| filter.default | S tem filtrom filtriramo vse podatke $_GET, $_POST, $_COOKIE, $REQUEST in $_SERVER. Sprejme ime filtra, ki ga želimo privzeto uporabiti. Oglejmo si seznam filtrov za seznam imen filtrov. | unsafe_raw | PHP_INI_PERDIR |
| filter.default_flags | Privzete zastavice (flags), ki se uporabijo, ko je nastavljen privzeti filter. Privzeto je
nastavljeno na FILTER_FLAG_NO_ENCODE_QUOTES zaradi združljivosti za nazaj. |
NULL | PHP_INI_PERDIR |
PHP ponuja nabor vgrajenih funkcij, ki omogočajo preverjanje obstoja vhodnih podatkov in njihovo neposredno filtriranje:
| Ime funkcije | Opis delovanja | Primer (Koda za simulator) | Akcija |
|---|---|---|---|
filter_has_var() |
Preveri, ali spremenljivka določene vrste (POST/GET) obstaja. | echo filter_has_var(INPUT_POST, 'email') ? 'Obstaja' : 'Ne obstaja'; |
|
filter_id() |
Vrne interni ID številko podanega imena filtra. | echo "ID filtra za email je: " . filter_id("validate_email"); |
|
filter_input() |
Pridobi zunanjo spremenljivko in jo takoj filtrira. | echo "URL: " . filter_input(INPUT_POST, 'splet', FILTER_VALIDATE_URL); |
|
filter_input_array() |
Pridobi več zunanjih spremenljivk hkrati in jih filtrira. | $f = ['vnos' => FILTER_VALIDATE_INT]; print_r(filter_input_array(INPUT_POST, $f)); |
|
filter_list() |
Vrne indeksirano tabelo vseh podprtih imen filtrov. | print_r(filter_list()); |
|
filter_var() |
Filtrira poljubno spremenljivko z določenim filtrom. | echo filter_var('test@email.si', FILTER_VALIDATE_EMAIL) ? 'Veljaven' : 'Neveljaven'; |
|
filter_var_array() |
Filtrira več poljubnih spremenljivk hkrati z matriko filtrov. | $p = ['a' => 10]; $f = ['a' => FILTER_VALIDATE_INT]; print_r(filter_var_array($p, $f)); |
FILTER_VALIDATE_IP z različnimi zastavicami:
FILTER_VALIDATE_URL z zastavicami:
S temi metodami lahko zelo natančno kontroliramo validacijo in sanacijo vhodnih podatkov, kar izboljša varnost naše aplikacije.