Foros del Web » Programando para Internet » PHP »

prohibir html

Estas en el tema de prohibir html en el foro de PHP en Foros del Web. bueno, estoy en mi intento de crear un foro, y me va bastante bien, pero todavia me queda el problema de prohibir que usen html. ...
  #1 (permalink)  
Antiguo 07/02/2003, 11:43
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 22 años
Puntos: 0
prohibir html

bueno, estoy en mi intento de crear un foro, y me va bastante bien, pero todavia me queda el problema de prohibir que usen html. Como lo hago??

Habia pensado en hacer que se revise el texto entero y que cuando aparezca < o > se cambie por otra cosa, esq es lo unico que se me ocurre.

Espero vuestras ideas. Un saludo
  #2 (permalink)  
Antiguo 07/02/2003, 11:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Bueno .. PHP como lenguaje orientado principalmente a la "web" ..ya pensón en eso y nos puso a disposición la función:

htmlentities() o htmlspecialchars()
http://www.php.net/manual/en/function.htmlentities.php

con esas funciones conviertes esos caractereres "maliciosos" a simples código HTML .. con lo cual no se interpretaran como HTML sino como un caracter especial:

Cita:
Citantando el manual de PHP :

'&' (ampersand) becomes '&amp;'
'"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set.
''' (single quote) becomes ''' only when ENT_QUOTES is set.
'<' (less than) becomes '&lt;'
'>' (greater than) becomes '&gt;'
Cabe decir .. q con eso no es que no lo prohibas .. sino q lo conviertes en inofensivo .. Con lo cual puedes ofrecer la posibilidad que en tus mensajes puedan incluir código o incluso escribir el mismismo caracter > < .. etc .. sin problemas.

Si quieres eliminar completamente TODO lo q esté entre < .. > podrias usar una expresión regular por ejemplo .. o simples str_replace() ...


Un saludo,

Última edición por Cluster; 07/02/2003 a las 11:56
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 13:02.