¿Cuándo usar esc_html y cuándo usar sanitize_text_field?

20 abr 2014, 13:36:45
Vistas: 21.7K
Votos: 15

Parece que realizan casi el mismo tipo de trabajo. Entonces...

¿Cuándo debería usar esc_html() en lugar de sanitize_text_field()?

0
Todas las respuestas a la pregunta 1
6
25

esc_html() es más o menos sin pérdida — simplemente convierte el marcado HTML en texto visible codificado, para que no sea interpretado como marcado por el navegador.

Semánticamente es un escape, por lo que está diseñado para usarse para hacer que la salida a la página sea segura.

sanitize_text_field(), sin embargo, realmente elimina todo el marcado HTML, así como los espacios en blanco adicionales. Solo deja texto plano.

Semánticamente es un sanitizado, por lo que está diseñado para usarse para hacer que los datos que se guardan sean seguros.

20 abr 2014 15:24:51
Comentarios

¿no sería mejor usar esc_html tanto para la salida como para guardar? De todos modos no voy a mostrar ningún marcado... ¿entonces cuándo usaría sanitize_text_field()?

yeahman yeahman
20 abr 2014 17:15:20

@yeahman ¿"mejor" en qué sentido? Hacen cosas claramente diferentes. Descartar marcado se usa normalmente para cosas donde no se espera marcado, por ejemplo un formulario que recibe un nombre.

Rarst Rarst
20 abr 2014 17:37:38

Me refiero a que almacena lo que el usuario ve e ingresó... como dijiste es sin pérdida (ej. si ingresa "la etiqueta <head> es donde debes incluir tus archivos css", espera ver el <head> en su publicación).

Para un campo de nombre, controlaría el ingreso mediante validación; ¿no sería más adecuado?

yeahman yeahman
20 abr 2014 18:40:24

Estoy interesado en las diferencias entre sanitize_text_field() y strip_tags

myol myol
29 ene 2015 16:24:17

strip_tags se usa dentro de sanitize_text_field() si no me equivoco

yeahman yeahman
23 feb 2016 21:47:59

Si introduces contenido en un array codificado en JSON, los valores del array contienen " (MUY probable si tu contenido es, por ejemplo, datos de posts) entonces - aunque sanitize_text_field() SERÍA lo correcto para hacer cuando GUARDAS datos, no funcionará. Necesitarás usar esc_html, que codifica las " y por lo tanto, en el momento que decodifiques tu JSON, NO romperá el valor devuelto.

User User
10 mar 2023 05:27:22
Mostrar los 1 comentarios restantes