Ce face filter_input / filter_has_var
filter_input(INPUT_GET, "pagina", FILTER_VALIDATE_INT) face același lucru ca filter_var($_GET["pagina"], FILTER_VALIDATE_INT), dar fără Warning când parametrul lipsește. Tipurile de intrare sunt INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER și INPUT_ENV.
Rezultatul are trei variante: valoarea validată, false dacă există dar nu trece filtrul, null dacă parametrul lipsește. filter_has_var(INPUT_GET, "pagina") spune doar dacă parametrul există.
Funcția citește datele originale ale cererii, nu variabila $_GET. Dacă modifici $_GET în cod, filter_input nu vede schimbarea. Din același motiv, în linia de comandă returnează mereu null.
Parametri
| Parametru | Descriere |
|---|---|
$type |
Sursa: INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER sau INPUT_ENV. |
$var_name |
Numele parametrului. |
$filter |
Opțional. Filtrul aplicat, ca la filter_var. |
$options |
Opțional. Opțiuni și flag-uri, ca la filter_var. |
Ce returnează
Valoarea filtrată, false dacă filtrul eșuează, sau null dacă parametrul nu există.
Exemple
Exemplul 1: Numărul paginii din URL
Pagina a fost deschisă cu adresa /articole?pagina=3&sortare=abc.
<?php
$pagina = filter_input(INPUT_GET, "pagina", FILTER_VALIDATE_INT, [
"options" => ["default" => 1, "min_range" => 1],
]);
$sortare = filter_input(INPUT_GET, "sortare", FILTER_VALIDATE_INT);
$categorie = filter_input(INPUT_GET, "categorie");
var_dump($pagina, $sortare, $categorie);
Rezultat în browser
int(3)
bool(false)
NULL
Exemplul 2: Formular trimis cu POST
<?php
if (filter_has_var(INPUT_POST, "email")) {
$email = filter_input(INPUT_POST, "email", FILTER_VALIDATE_EMAIL);
if ($email === false) {
echo "Adresa de email nu este validă.";
} else {
echo "Te-ai abonat cu adresa " . htmlspecialchars($email) . ".";
}
}
Rezultat în browser
Te-ai abonat cu adresa ana@exemplu.ro.
Greșeli frecvente
- Testezi codul din linia de comandă sau modifici
$_GETmanual șifilter_inputreturneazănull. Funcția vede doar datele reale ale cererii HTTP. - Nu faci diferența între
null(lipsește) șifalse(invalid). Pentru „câmp obligatoriu” verificănull, pentru „format greșit” verificăfalse.
Comenzi înrudite
filter_var: Validează sau curăță o valoare: email, număr întreg, URL, adresă IP, valoare booleană.isset: Verifică dacă o variabilă există și nu are valoarea null.htmlspecialchars: Transformă caracterele speciale HTML în entități, ca textul să fie afișat în siguranță în pagină.