SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: DarkSlash en Lunes 4 de Septiembre de 2006, 20:18

Título: No Permitir Html Tags En Un Formulario
Publicado por: DarkSlash en Lunes 4 de Septiembre de 2006, 20:18
Bueno, tengo un form que introduce datos a una base de datos y quiero bloquear los tags html para que no puedan introducir código malisioso...

Lo único que se me ocurrió es validar que ninguno de los caracteres introducidos sea un < o un >, pero de seguro hay alguna función o algo mejor que mi idea, no?
Título: Re: No Permitir Html Tags En Un Formulario
Publicado por: ibito en Lunes 4 de Septiembre de 2006, 21:35
htmlentities (http://mx2.php.net/manual/en/function.htmlentities.php)

Esta función te sirve para convertir todos los caracteres de una cadena a entidades HTML, por ejemplo, si haces una página que sea:
Código: Text
  1.  
  2. &#60;?php  
  3.   echo htmlentities(&#34;&#60;b&#62;&#60;/b&#62;&#34;);
  4. ?&#62;
  5.  
  6.  

El código HTML de la página sería:
Código: Text
  1.  
  2. <b></b>
  3.  
  4.  

Y lo que se vería en la página sería:
Código: Text
  1.  
  2. &#60;b&#62;&#60;/b&#62;
  3.  
  4.  
Título: Re: No Permitir Html Tags En Un Formulario
Publicado por: DarkSlash en Lunes 4 de Septiembre de 2006, 21:40
eso está bueno, pero como ese cqmpo se introduce en un text, y le hago un nl2br para que mantenga el formato, entonces cuando le aplico un htmlentities me muestra los <br> en vez de mantener el formato :S
Título: Re: No Permitir Html Tags En Un Formulario
Publicado por: ibito en Lunes 4 de Septiembre de 2006, 21:46
primero aplica el htmlentities y luego el nl2br  :rolleyes:
Título: Re: No Permitir Html Tags En Un Formulario
Publicado por: DarkSlash en Lunes 4 de Septiembre de 2006, 21:49
PERFECTO! MIL GRACIAS! FUNCIONO A LA PERFECCION! :D