Quando usare esc_html e quando usare sanitize_text_field?

20 apr 2014, 13:36:45
Visualizzazioni: 21.7K
Voti: 15

Sembra che svolgano quasi lo stesso tipo di lavoro. Quindi...

Quando dovrei usare esc_html() invece di sanitize_text_field()?

0
Tutte le risposte alla domanda 1
6
25

esc_html() è più o meno senza perdita di dati — semplicemente converte il markup HTML in testo codificato visibile, in modo che non venga interpretato come markup dal browser.

Semanticamente è una funzione di escape, quindi è pensata per rendere sicuro l'output sulla pagina.

sanitize_text_field() invece rimuove effettivamente tutto il markup HTML, oltre agli spazi bianchi extra. Non lascia altro che testo semplice.

Semanticamente è una funzione di sanitizzazione, quindi è pensata per rendere sicuro l'input da salvare.

20 apr 2014 15:24:51
Commenti

non è meglio usare esc_html sia per l'output che per il salvataggio? Tanto non visualizzerò alcun markup.. quindi quando dovrei usare sanitize_text_field()?

yeahman yeahman
20 apr 2014 17:15:20

@yeahman "meglio" in che senso? Fanno cose chiaramente diverse. Scartare il markup è solitamente usato per cose dove non ci si aspetta markup, ad esempio un form che prende un nome.

Rarst Rarst
20 apr 2014 17:37:38

Intendo che memorizza ciò che l'utente vede e ha inserito... come hai detto è senza perdita (es. inserisce "il tag <head> è dove dovresti includere i tuoi file css", si aspetta di vedere il <head> nel suo post).

Per un campo nome, controllerei l'input tramite validazione; non sarebbe più appropriato?

yeahman yeahman
20 apr 2014 18:40:24

Mi interessa conoscere le differenze tra sanitize_text_field() e strip_tags

myol myol
29 gen 2015 16:24:17

Se non sbaglio, strip_tags viene utilizzato all'interno di sanitize_text_field()

yeahman yeahman
23 feb 2016 21:47:59

Se inserisci contenuto in un array codificato JSON e i valori dell'array contengono " (cosa MOLTO probabile se il tuo contenuto è ad esempio dati di un post) - mentre sanitize_text_field() sarebbe la cosa giusta da fare poiché stai SALVANDO i dati, non funzionerà. Dovrai usare esc_html, che codifica i " e quindi, nel momento in cui decodifichi il tuo JSON, non interromperà il valore restituito.

User User
10 mar 2023 05:27:22
Mostra i restanti 1 commenti