In questo articolo vediamo come pulire e sanitizing l'input dell'utente per evitare di salvare errori nel database in Wordpress.

E’ buona pratica sempre controllare e pulire l’input che l’utente inserisce per far si che non si inseriscano caratteri indesiderati nel database e per tenere il nostro programma pulito e senza errori e warning. Questo processo viene chiamato sanitizing.

Sanitizing vuol dire sostanzialmente pulire l’input ed eliminare caratteri e codice non consentito prima di memorizzare le variabli.

WordPress mette a disposinzione un’ampia libreria di funzioni per sanitize l’input, in questo articolo ne vedremo solo le piu’ importanti in quanto le funzioni sono davvero tantissime.

  • sanitize_email ( string $email ), pulisce una email da tutti i caratteri che non sono consentiti. Solitamente viene usata prima di memorizzare email nel database.
  • sanitize_file_name ( string $filename ), pulisce i nomi di file sostituendo spazi e dashes. Questa funzione viene usata da WordPress Media Uploader per pulire i nomi dei file nella media gallery.
  • sanitize_text_field ( string $str ), questa funzione e’ probabilmente la funzione piu’ comune usata per pulire i dati da FORM, pulisce una string, puo’ essere usata con dati di utente o da database.
  • sanitize_title ( string $title, string $fallback_title = ”, string $context = ‘save’ ), questa funzione viene usata per evitare di visualizzare caratteri non desiderati nei titoli degli articoli o custom post type. Rimuove codice PHP e tags HTML da una string, cosi’ come accenti. Gli spazi vengono convertiti in dashes.
  • sanitize_textarea_field ( string $str ), questa funzione funziona esattamente come sanitize_text_field, ma viene usato per pulire i tag textarea nei form. 
  • sanitize_key ( string $key ), options, MetaData e  Transients Keys possono solo avere caratteri minuscoli e alfanumerici, dashes e underscores. Questa funzione elimina tutti gli altri carattarei.

Per una completa visione di tutte le funzioni che WordPress mette a disposizione per pulire l’input date un occhiata al questo articolo preso dalla documentazione di WordPress qui. Nel caso abbiate necessita’ dovete fare un data-validation sull’input vi consiglio di usare le funzioni PHP quali is_email(), is_serialized(), empty() ecc… Date un occhiata a questo interessante articolo.

In sostanza, sempre controllare cosa l’utente sta inserendo nel database, mai fidarsi del senso comune degli utenti, e questo vi aiutera’ a far crescere un sistema piu’ robusto prevenendo errori del database.