Il logo del sito

Appunti su PHP

Traduzione da PHP Filters

PHP Filter Reference

§ 1. PHP Filters

Lo scopo dei filtri é quello di:

La funzione filter_list() può essere usata per elencare la lista delle funzioni di filtro disponibili.

Esempio:


<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>
Filter Name Filter ID
int257
boolean258
float259
validate_regexp272
validate_domain277
validate_url273
validate_email274
validate_ip275
validate_mac276
string513
stripped513
encoded514
special_chars515
full_special_chars522
unsafe_raw516
email517
url518
number_int519
number_float520
magic_quotes521
add_slashes523
callback1024

§ 1.2 Perchè usare i filtri.

Molte applicazioni web ricevono input esterni. Input esterni possono essere:

Nota:I dati esterni dovrebbero essere sempre validati!

I dati non validi possono portare a problemi di sicurezza ed interrompere la pagina. Usando i filtri PHP ci si assicura che i dati in input alla applicazione sono corretti.

§ 1.3 La funzione filter_var().

La funzione filter_var() esegue sia la validazione che la bonifica.

La funzione filter_var() richiede due parametri:

Il seguente esempio usa la funzione filter_var per rimuovere tutte le tag HTML da una stringa:


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

§ 1.4 Validare un intero.

Il seguente esempio usa la funzione filter_var per controllare se la varibile $int contiene un intero:


<?php
   $int = 100;

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

§ 1.5 filter_var() e il problema dello 0.

L'esempio precedente, se $int fosse stato settato a 0, avrebbe restituito: "Integer is non valid" per risolvere questo problema si fa così


<?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");
   }
?>
Integer is valid

§ 1.6 validare un indirizzo IP

Nell'esempio che segue la funzione filter_var() è utilizzata per controllare che la variabile $ip sia un indirizzo IP valido:


<?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");
   }
?>
127.0.0.1 is a valid IP address

§ 1.7 Validare e bonificare un indirizzo email

Nell'esempio che segue la funzione filter_var(), prima rimuove tutti i caratteri illegali dalla variabile $emil, poi controlla che contenga un indirizzo email valido:


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

// Remove all illegal characters from email
   $email = filter_var($email, FILTER_SANITIZE_EMAIL);

// Validate e-mail
   if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
      echo("$email is a valid email address");
   } else {
      echo("$email is not a valid email address");
   }
?>
john.doe@example.com is a valid email address

§ 1.8 Validare e bonificare un URL

Nell'esempio che segue la funzione filter_var(), prima rimuove tutti i caratteri illegali dalla variabile $url, poi controlla che che contenga un URL valido:


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

// Remove all illegal characters from a url
   $url = filter_var($url, FILTER_SANITIZE_URL);

// Validate url
   if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
      echo("$url is a valid URL");
   } else {
      echo("$url is not a valid URL");
   }  
?>
https://www.w3schools.com is a valid URL

§ 1.9 Riferimenti completi dei filtri PHP

PHP Filter Reference