Validazione e filtro dell’input di un utente. La nuova filter_var()

Oggi mi sono trovato di fronte al classico form di registrazione di un utente con relativo form di login.
La mia prima preoccupazione è stata ovviamente la validazione e il filtraggio dell’input dell’utente.

Ero già pronto a prendermi le classiche espressioni regolari per controllare email, input di testo, date ecc… Ma proprio oggi leggevo un interessantissimo articolo su mattiasgeniar.be, un buon blog di uno sviluppatore, dove veniva presentata un’innovativa soluzione, introdotta con PHP5, per validare e filtrare l’input degli utenti: filter_var().

Ammetto di essere rimasto affascianato dalla semplicità con cui ora posso validare e filtrare i dati.
Ecco alcuni esempi (Attenzione: filter_var() è presente SOLO da PHP5 in poi).

Validazione di una mail:

<?php
   if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) echo 'Email non valida';
?>

Strip di tutto ciò che non è una stringa (pensiamo ad esempio ad un commento nel nostro blog):

<?php
   $commento = "<h1>Ciao a tutti, il mio <a href='http://www.google.it'>blog è qui</a></h1>";
   $commento = filter_var($commento, FILTER_SANITIZE_STRING);
   // Restituisce Ciao a tutti, il mio blog è qui
?>

E questi sono solo due semplicissimi esempi che solitamente necessitano di strip_tags, espressioni regolari ecc…
Onestamente trovo questo filter_var una vera manna!

Vi lascio il link di tutti i possibili parametri (sono veramente molti) per la filter_var:
http://mattiasgeniar.be/2009/02/07/input-validation-using-filter_var-over-regular-expressions/

Approfondisci