Foros del Web » Programando para Internet » PHP »

htmlspecialchars sin quitar br

Estas en el tema de htmlspecialchars sin quitar br en el foro de PHP en Foros del Web. Hola!! Tengo un problema, al recoger datos de un form, uso la funcion htmlspecialchars, para no permitir inseguridades, como links, etc El problema es que ...
  #1 (permalink)  
Antiguo 02/09/2008, 09:07
(Desactivado)
 
Fecha de Ingreso: marzo-2008
Mensajes: 641
Antigüedad: 16 años, 1 mes
Puntos: 7
htmlspecialchars sin quitar br

Hola!!

Tengo un problema, al recoger datos de un form, uso la funcion htmlspecialchars, para no permitir inseguridades, como links, etc

El problema es que no quiero que me modifique los (<>) de la etiqueta (<br />), ya que si no queda feo.

He pensado una solución.

Convertir todos los <br /> a una palabra inventada, que no use nadie, como (e.s.p.a.c.i.o;-;). Luego llamo a la función htmlspecialchars.

Luego vuelvo a reemplazar los (e.s.p.a.c.i.o;-;) por la etiqueta <br />

Pero no se si es una buena solución. Si alguien tiene alguna mejor, agradeceríoa que me la dijera.

Saludos.
  #2 (permalink)  
Antiguo 02/09/2008, 09:26
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: htmlspecialchars sin quitar br

No creo que sea necesario.
Cuando deseas que tu texto conserve los saltos de linea solo debes usar nl2br.

Mayor referencia http://www.php.net/manual/es/function.nl2br.php

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 02/09/2008, 09:41
(Desactivado)
 
Fecha de Ingreso: marzo-2008
Mensajes: 641
Antigüedad: 16 años, 1 mes
Puntos: 7
De acuerdo Respuesta: htmlspecialchars sin quitar br

Gracias.

ya conocía la función. Pero al hacer eso y después usar htmlspecialchars, se me pasaban los > a &lt; y < a &gt;

De modo que lo he solucionado así:

Código PHP:
//Recger variable
 
$chisteviene=$_POST["Chiste"];
   
$chistehtml=nl2br($chisteviene);
  
$chistebrespacio=str_replace("<br />","e.s.p.a.c.i.o-br",$chistehtml);
  
$chistebrlt=str_replace("<","&lt;",$chistebrespacio);
  
$chistebrgt=str_replace(">","&gt;",$chistebrlt);
   
$chistebien=str_replace('"',"&quot;",$chistebrgt);
  
$chiste=str_replace("e.s.p.a.c.i.o-br","<br/>",$chistebien);
//Nuestra variable está nueva!! 
Saludos. Si alguien tiene mejor solución, que me la deje por favor.

  #4 (permalink)  
Antiguo 02/09/2008, 10:30
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: htmlspecialchars sin quitar br

tienes usar a la inversa primero htmlspecialchars luego nl2br
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #5 (permalink)  
Antiguo 03/09/2008, 07:06
(Desactivado)
 
Fecha de Ingreso: marzo-2008
Mensajes: 641
Antigüedad: 16 años, 1 mes
Puntos: 7
De acuerdo Respuesta: htmlspecialchars sin quitar br

Ok, Gracias

Muchas gracias
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 21:14.