Foros del Web » Programando para Internet » PHP »

htmlentities no funciona

Estas en el tema de htmlentities no funciona en el foro de PHP en Foros del Web. Alguien sabe por que no funciona la función de php htmlentities. No me funciona tampoco htmlspecialchars. $str = "A 'quote' is <b>bold</b>"; echo htmlentities($str); // ...
  #1 (permalink)  
Antiguo 08/02/2010, 09:26
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta htmlentities no funciona

Alguien sabe por que no funciona la función de php htmlentities. No me funciona tampoco htmlspecialchars.

$str = "A 'quote' is <b>bold</b>";
echo htmlentities($str); // Devuelve A 'quote' is <b>bold</b>

$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // Devuelve <a href='test'>Test</a>

Tengo que modificar algo en el config.ini?

Gracias
  #2 (permalink)  
Antiguo 08/02/2010, 09:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: htmlentities no funciona

Pero ¿qué deseas ver? Porque si te fijas en el código fuente si debe estar convertido. Además si deseas convertir las comillas debes hacer uso del segundo parametro y escribir ENT_QUOTES.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 08/02/2010, 10:05
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Respuesta: htmlentities no funciona

Deseo convertir cualquier entidad html como <b> a en &lt;b&gt;

Sólo me funciona cuando lo inserto en la base de datos, pero en el ejemplo anterior is quiero ver la conversión no la realiza

Gracias
  #4 (permalink)  
Antiguo 08/02/2010, 10:07
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: htmlentities no funciona

pero estas viendo la salida en el navegador?
por que recuerda que el navegador interpreta el html

mira el codigo de fuente o imprime dentro de un textarea
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 08/02/2010, 10:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: htmlentities no funciona

Como te indique, mira el código fuente, sí lo esta haciendo, ya que el navegador te las está enseñado.

Edito:
Si deseas tambien verlo en el navegador, entonces usa doblemente htmlentities
Código PHP:
Ver original 
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 08/02/2010, 10:34
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: htmlentities no funciona

Vale. Teneis razón.

Si lo está imprimiento en el código fuente.

Muchas gracias :)

Por cierto, sabeis cual es la mejor forma de evitar código malintencionado a través de formularios para ser insert en la base de datos; A través de mysql_real_escape_string or mediante htmlentities() ?

Gracias
  #7 (permalink)  
Antiguo 08/02/2010, 10:38
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: htmlentities no funciona

Lo aconsejable es usar mysql_real_escape_string. Luego con htmlentities muestras la información en la página web.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 08/02/2010, 10:54
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: htmlentities no funciona

No sería mejor utilizar las 2 al insertar? o sólo htmlentities($str, ENT_QUOTES)?

Si utilizamos htmlentities cada vez que queramos visualizar un campo de texto se produce más sobrecarga!!

La sobrecarga de html en la base de datos sólo se produciria en el caso de introducir código malintenciando.

Tu como evitas los ataques tipo NOMBRE : <script>alert('hola')</script> ?
  #9 (permalink)  
Antiguo 08/02/2010, 10:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: htmlentities no funciona

Lo que sucede es que si luego en el futuro quieres hacer una busqueda en la base de datos, te va a costar trabajo ya que los caracteres especiales estarán convertidos conforme a su entidades. Lo mejor es usar mysql_real_escape_string y luego con htmlentities mostrarlo en la página web.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 08/02/2010, 11:13
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: htmlentities no funciona

Supongo que bien ejecutar la función al insertar o al visualizar el texto es cuestión de gustos. Me gusta la idea de tener la información en la base de datos ya saneada.

Bien es verdad que puede ser molesto a la hora de reaizar consultas.

Veremos que decido.

Grácias por la ayuda

Etiquetas: htmlentities
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 10:19.