Foros del Web » Programando para Internet » PHP »

duda HTMLentities()

Estas en el tema de duda HTMLentities() en el foro de PHP en Foros del Web. Buenas. Quiero que en los textArea, input etc de mi web no puedan poner código, es decir que tengan seguridad y que además no puedan ...
  #1 (permalink)  
Antiguo 29/11/2011, 11:38
 
Fecha de Ingreso: octubre-2009
Mensajes: 103
Antigüedad: 15 años, 1 mes
Puntos: 2
duda HTMLentities()

Buenas.

Quiero que en los textArea, input etc de mi web no puedan poner código, es decir que tengan seguridad y que además no puedan darle un diseño distinto al texto ni poner enlaces etc.

Buscando he encontrado el htmlentities(), yo lo uso así:

htmlentities($variableDelTextArea, ENT_QUOTES, "UTF-8");

Y la verdad que lo estoy probando y me guarda todas las etiquetas literalmente, es decir no ejecuta el codigo sino que lo imprime literalmente, o sea justo lo que quería. Pero me gustaría preguntar si simplemente ese comando ya da 100% seguridad de que no podrán poner ningún codigo en ningun textArea/label de mi web? , es que veo también alternativas en las que sustituyen el ENT_QUOTES por ENT_IGNORE por ejemplo... así que no se si debería pasar algun filtro más a parte de la linea que he puesto arriba para asegurarme de que no ponen código.


Por cierto, aunque al enviar la variable por POST, y despues al recibirla hacer: echo $_POST['variable']; lo muestra sin código, pero...... si esa variable la guardo directamente en una base de datos, despues al leerla de la base de datos permanecerá sin permitir el código (es decir mostrandolo literalmente) o despues de leerlo de la BD habrá que volver a hacer una transformación?


thanks por anticipado.
  #2 (permalink)  
Antiguo 29/11/2011, 12:30
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: duda HTMLentities()

Creo que no te aclaras muy bien, ya que htmlentities() no elimina etiquetas o códigos html, sólo convierte los caracteres más representativos a su equivalente, por ejemplo
< lo pasa a &lt; o ñ lo pasa a &ntilde;

Pero el caracter y la etiqueta sigue ahí, por lo que podrían meter estilos, lo que dices que no quieres.

htmlentities() sería más apropiado cuando quieres mantener estilos de los usuarios sin tener problemas con tu código html.

Si lo que quieres es que no tengan estilos, deberías usar strip_tags().


Si entiendo tu última pregunta, no, no necesitas hacer ninguna transformación cunado muestras un dato guardado previamente pasado por htmlentities().
  #3 (permalink)  
Antiguo 29/11/2011, 16:08
 
Fecha de Ingreso: octubre-2009
Mensajes: 103
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: duda HTMLentities()

la cuestión es que yo un textArea lo guardo en una $variable.

despues hago $variable = htmlentities($variable, ENT_QUOTES, "UTF-8");

y despues al poner " echo $variable;" me muestra esto:

<b> Hello </b>

y no esto:

Hello

---

Es decir hace justo lo que quiero :S. De todas formas estoy mirando sobre el strip_tags(), y este lo que hace es eliminar las etiquetas que tu le indicas no?. Yo lo que quiero es que si escribe: <b> Hello </b> se muestre <b> Hello </b>, creo que para eso sirve el htmlentities no?

Última edición por rulzzz; 29/11/2011 a las 16:23
  #4 (permalink)  
Antiguo 29/11/2011, 17:21
 
Fecha de Ingreso: noviembre-2011
Ubicación: Zulia/Maracaibo
Mensajes: 24
Antigüedad: 13 años
Puntos: 0
Respuesta: duda HTMLentities()

Prueba con
Código PHP:
Ver original
  1. strip_tags($variableDelTextArea)
, creo que es lo que buscas, espero te sea de ayuda..!
  #5 (permalink)  
Antiguo 30/11/2011, 03:03
 
Fecha de Ingreso: octubre-2009
Mensajes: 103
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: duda HTMLentities()

De hecho creo que la mejor manera es como lo estaba haciendo, con htmlentities.


Yo no quiero que se eliminen las tags, lo que quiero es que se muestren literalmente sin ejecutarse.


El problema es que al guardarlo en la BD queda todo con los simbolos raros de la transformación, pero bueno si no hay nada mejor..

Etiquetas: html, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:12.