PHP
HTML
CSS
JavaScript
Generatori
Varie & Old

PHP: Validazione dati

Validazione dei dati in PHP

La validazione dei dati è un passaggio essenziale per controllare che i valori inseriti dall’utente siano corretti, sicuri e coerenti con le regole dell’applicazione.

Introduzione alla validazione

Quando un utente inserisce dati in un form, questi devono essere controllati prima dell’utilizzo. La validazione serve a prevenire errori, mantenere i dati coerenti e proteggere da tentativi di attacco (es. SQL injection, XSS).

  • Controllo del tipo di dato (numerico, stringa, email...)
  • Controllo della lunghezza e del formato
  • Sanificazione del contenuto (rimozione di caratteri pericolosi)

Esempio: validazione email

PHP fornisce la funzione filter_var() che permette di validare diversi tipi di input. Nell’esempio controlliamo se un’email è valida.

Codice Esempio: validazione email

CODE: PHPpreleva codice
  1. <?php
  2. $email = "[email protected]";
  3.  
  4. if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  5.   echo "Email valida: " . $email;
  6. } else {
  7.   echo "Email non valida";
  8. }
  9. ?>
  10. <!-- Output nel browser:
  11. Email valida: [email protected]
  12. -->

Esempio: numeri interi

Possiamo controllare se un valore è un numero intero con FILTER_VALIDATE_INT.

Codice Esempio: validazione numero intero

CODE: PHPpreleva codice
  1. <?php
  2. $valore = "25";
  3.  
  4. if (filter_var($valore, FILTER_VALIDATE_INT)) {
  5.   echo "Numero intero valido: " . $valore;
  6. } else {
  7.   echo "Non è un numero intero";
  8. }
  9. ?>
  10. <!-- Output nel browser:
  11. Numero intero valido: 25
  12. -->

Sanificazione dei dati

Oltre alla validazione, è spesso necessario sanificare i dati rimuovendo elementi pericolosi. Ad esempio, FILTER_SANITIZE_STRING elimina tag HTML indesiderati.

Codice Esempio: sanificazione testo

CODE: PHPpreleva codice
  1. <?php
  2. $testo = "<h1>Ciao</h1> <script>alert('XSS');</script>";
  3.  
  4. $pulito = filter_var($testo, FILTER_SANITIZE_STRING);
  5. echo $pulito;
  6. ?>
  7. <!-- Output nel browser:
  8. Ciao alert('XSS');
  9. -->

Filtri di validazione (FILTER_VALIDATE_...)

Filtro Descrizione
FILTER_VALIDATE_BOOLEANValida un booleano (true/false, 1/0, yes/no, ecc.)
FILTER_VALIDATE_EMAILVerifica se è un indirizzo email valido
FILTER_VALIDATE_FLOATVerifica se è un numero float
FILTER_VALIDATE_INTVerifica se è un numero intero
FILTER_VALIDATE_IPVerifica se è un indirizzo IP valido (IPv4 o IPv6)
FILTER_VALIDATE_MACVerifica se è un indirizzo MAC valido
FILTER_VALIDATE_REGEXPValida secondo una espressione regolare
FILTER_VALIDATE_URLVerifica se è un URL valido

Filtri di sanitizzazione (FILTER_SANITIZE_...)

Filtro Descrizione
FILTER_SANITIZE_EMAILRimuove caratteri non validi da un'email
FILTER_SANITIZE_ENCODEDCodifica i caratteri speciali in percent-encoding
FILTER_SANITIZE_FULL_SPECIAL_CHARSConverte tutti i caratteri speciali in entità HTML
FILTER_SANITIZE_NUMBER_FLOATRimuove tutto tranne numeri, punto e segni + / -
FILTER_SANITIZE_NUMBER_INTRimuove tutto tranne cifre e segni + / -
FILTER_SANITIZE_SPECIAL_CHARSConverte alcuni caratteri speciali in entità HTML
⚠️ FILTER_SANITIZE_STRINGRimuove tag HTML e caratteri speciali (deprecato in PHP 8.1)
FILTER_SANITIZE_URLRimuove caratteri non validi da un URL

Considerazioni

Validare e sanificare i dati è indispensabile per garantire la sicurezza delle applicazioni PHP e la qualità delle informazioni memorizzate o elaborate.


I Cookie su questo sito:

Il nostro sito utilizza cookie e altre tecnologie in modo tale che sia noi, sia i nostri partner, possiamo ricordarci di te e capire come tu e gli altri visitatori utilizzate il nostro sito. Qui puoi trovare ulteriori informazioni sui cookie e le altre tecnologie. Chiudendo questo banner o continuando la navigazione acconsenti all'uso dei cookie. Acconsento Info Cookies