✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Dovresti utilizzare le funzioni di filtro PHP, parte 2

21

Nel post precedente, ho parlato dei motivi per cui l’utilizzo delle funzioni di filtraggio PHP è più utile piuttosto che no.

In breve, ciò aiuta a fornire un livello di convalida integrato nel linguaggio in modo da non dover riscrivere qualcosa. Naturalmente, ci sono delle avvertenze.

Ad esempio, se devi convalidare un valore che è di caratteri non latini, dovrai farlo da solo e implementare la convalida con forse un’espressione regolare.

Ma se stai utilizzando indirizzi e-mail, URL, numeri, indirizzi IP e molte altre cose, allora sei in una buona posizione per utilizzare qualcosa che già esiste.

Ad ogni modo, tutto quanto sopra riguarda ancora il filtraggio delle variabili. E per quanto riguarda gli input, però? Cioè, quelli che provengono da $_POSTo $_GET. È possibile utilizzare una strategia simile con una funzione diversa e un diverso set di filtri.

Ma se capisci le basi presentate nell’ultimo post, questo post non sarà molto diverso.

Funzioni di filtraggio PHP, parte 2: Input

Il filtraggio degli input viene eseguito dalla filter_inputfunzione. La definizione di questa specifica funzione è:

Ottiene una specifica variabile esterna in base al nome e, facoltativamente, la filtra

Il manuale PHP

E, come detto l’ultima volta, suona un po’ strano finché non capisci quali sono i filtri. Fortunatamente, ne abbiamo parlato nel post precedente. E anche se questo post si concentrerà specificamente su POST(e molto brevemente GET).

Ci sono altri filtri però. E questi includono:

  • INPUT_COOKIE
  • INPUT_SERVER
  • INPUT_ENV

Ad ogni modo, poiché le due operazioni più comuni che tendo a vedere in WordPress includono POSTe GET, sembra importante includerle qui.

Dovresti utilizzare le funzioni di filtro PHP, parte 2

Usare queste funzioni è banalmente facile. Si supponga di avere un valore proveniente da qualcosa che l’utente ha fornito in un modulo e che lo stia inviando al server utilizzando una POSTrichiesta con una chiave come firstname.

Il codice per verificarlo potrebbe essere simile a questo:

  • filter_input(INPUT_POST, 'firstname');

Il che è abbastanza facile da capire perché prende semplicemente la chiave, la filtra e quindi restituisce un valore. E poiché restituisce un valore, possiamo impostare una clausola di guardia prima di andare avanti con qualsiasi altro lavoro:

1if (false === filter_input(INPUT_POST, 'firstname')) { 2  return; 3}

Se tutto è andato a buon fine, possiamo andare avanti facendo tutto ciò che dobbiamo fare con le informazioni dell’utente. Forse abbiamo bisogno di associarlo al post corrente per qualsiasi motivo:

1if (false === filter_input(INPUT_POST, 'firstname')) { 2  return; 3} 4  5$firstname = filter_input(INPUT_POST, 'firstname'); 6update_post_meta(get_the_ID(), 'acme-firstname', $firstname); 7  8// Other code you may use...

Inoltre, puoi proteggere le informazioni ancora di più attraverso l’uso dei vari filtri esistenti. Questi vengono passati come terzo parametro alla filter_inputfunzione.

E che dire GET?

La cosa bella di questa funzione è che, in generale, valgono le stesse regole che fanno con POSTtranne che con INPUT_POST, userai INPUT_GET.

E poi puoi elaborare il tuo codice come meglio si adatta alle esigenze del tuo progetto.

Sicurezza, Nonces, ecc.

Ricorda, questo non è qualcosa da usare al posto della sicurezza. Questo è puramente allo scopo di proteggere i dati prima di fare qualsiasi cosa con essi.

Non sostituire la verifica dei valori nonce solo perché stai verificando i dati in modo diverso.

Variabili e Input

Ricorda, sebbene queste funzioni siano variabili molto simili e gli input siano diversi. In altre parole, non tentare di utilizzare filter_varquando si lavora con l’input proveniente dall’utente o dal browser. Usalo ogni volta che lavori con le variabili. E, allo stesso modo, usa ht e

Fonte di registrazione: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More