Come pulire l’input dell’utente in WordPress

Blog Tutorial

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.
    echo sanitize_email("narayan prusty@sitepoint.com");
    // restituisce "narayanprusty@sitepoint.com"
    $sanitized_email = sanitize_email('     admin@example.com!     ');
    echo $sanitized_email; 
    // restituisce  'admin@example.com'
  • 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.
    echo sanitize_file_name("_profile pic--1_.png"); 
    // restituisce "profile-pic-1_.png"
  • 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.
    echo sanitize_text_field("<b>Bold<</b>"); 
    //visualizza "Bold&lt;"
  • 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.
    echo sanitize_title("Sanítizing, Escaping and Validating Data in WordPress"); 
    //visualizza "sanitizing-escaping-and-validating-data-in-wordpress"
    $new_url = sanitize_title('This Long Title is what My Post or Page might be');
    echo $new_url;
    // visualizza "this-long-title-is-what-my-post-or-page-might-be"
  • 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.

You May Like

I built a WordPress plugin that gives the possibility to make the background image clickable, I have worked on this plugin with the idea in mind that a plugin has to be the more possible standard in order to work with any existing WordPress theme, but I realized that making such plugin is virtually impossible as long as any […]

November 12, 2020
Read More...

Siccome ho notato che c’e’ molta confusione sulla gestione e la creazione di Shortcode in Stackoverflow e in generale su internet ho deciso di fare questa guida per spiegare in modo semplice come creare e gestiore un Shortcode in Wordpree e a che cosa serve. Prima di tutto … Cos’e’ uno Shortcode in WordPress e a […]

October 10, 2020
Read More...

Oggi vediamo di analizzare un errore che appare ultimamente spesso nell’ispector e che e’ molto difficile da individuare e risolvere. L’errore appare come “Failed to load resource: net::ERR_BLOCKED_BY_CLIENT” o anche come “Impossibile caricare la rete: net :: ERR_BLOCKED_BY_CLIENT” se il vostro browser e’ in italiano. Questo errore e’ sempre seguito da un url, l’url in […]

May 23, 2020
Read More...

Click to Leave a Comment