Foros del Web » Programando para Internet » PHP »

Utf8 encode con nl2br

Estas en el tema de Utf8 encode con nl2br en el foro de PHP en Foros del Web. Hola, os comento mi problema, tengo un textarea en un formulario, cuando el usuario hace submit lo capturo y le paso la funcion htmlspecialchars junto ...
  #1 (permalink)  
Antiguo 09/04/2011, 10:03
 
Fecha de Ingreso: septiembre-2009
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Utf8 encode con nl2br

Hola, os comento mi problema,
tengo un textarea en un formulario, cuando el usuario hace submit lo capturo y le paso la funcion htmlspecialchars junto utf8_decode y n2ldbr, todo ello para evitar problemas con las comillas, los caracteres especiales y capturar los saltos d linea.

El problema es que los saltos de linea al tener caracteres especiales como > los codifica como caracter html

Que solucion veis al problema??
  #2 (permalink)  
Antiguo 09/04/2011, 10:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 2 meses
Puntos: 2534
Respuesta: Utf8 encode con nl2br

claro, no es necesario nl2br() porque eso no sirve para la "seguridad" que imaginas...

conviene usarlo solo al mostrar el HTML al navegador, no antes!!

¿porque no lees el manual?
http://php.net/nl2br
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/04/2011, 10:32
 
Fecha de Ingreso: septiembre-2009
Mensajes: 230
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: Utf8 encode con nl2br

y si ahces, htmlspecialchars, despues el nl2br, y ahi el decode? O mejor, en vezde pasarle el decode, haces un encode cada vez que muestres el html
  #4 (permalink)  
Antiguo 09/04/2011, 10:35
 
Fecha de Ingreso: septiembre-2009
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Utf8 encode con nl2br

en ningun caso he utilizado la funcion nl2br por seguridad, solo intento que cuando el administrador publique algo con saltos de linea se muestre con esos saltos de linea.

de todas maneras lo que me dices, tampoco funciona, le paso la funcion cuando hago el print y me lo imprime todo en la misma linea!!, sigo haciendo algo mal??

Gracias!
  #5 (permalink)  
Antiguo 09/04/2011, 10:37
 
Fecha de Ingreso: septiembre-2009
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Utf8 encode con nl2br

Cita:
Iniciado por kirst Ver Mensaje
y si ahces, htmlspecialchars, despues el nl2br, y ahi el decode? O mejor, en vezde pasarle el decode, haces un encode cada vez que muestres el html
El encode al imprimirlo me seguia mostrando caracteres raros, cosa que solucionó el decode, y lo otro que me dices voy a probarlo!
  #6 (permalink)  
Antiguo 09/04/2011, 10:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 2 meses
Puntos: 2534
Respuesta: Utf8 encode con nl2br

Cita:
Iniciado por pacorm15 Ver Mensaje
en ningun caso he utilizado la funcion nl2br por seguridad, solo intento que cuando el administrador publique algo con saltos de linea se muestre con esos saltos de linea.

de todas maneras lo que me dices, tampoco funciona, le paso la funcion cuando hago el print y me lo imprime todo en la misma linea!!, sigo haciendo algo mal??

Gracias!
claro, ¿porque ya habías usado antes nl2br() cierto?

eso funciona solo si haces las cosas bien desde la primer ves, si desde esa ves ya frustraste los saltos de linea estos son inservibles en adelante....

entiende eso, ¿para que guardar el texto con los saltos de linea ya como <br/>?

¿no sería mejor convertir dichos saltos solo al mostrar la noticia?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 09/04/2011, 11:05
 
Fecha de Ingreso: septiembre-2009
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Utf8 encode con nl2br

No no, no frustre los saltos de linea antes, lo probe como dijiste...

He probado lo otro que me habeis dicho, lo de colocar el nl2br despues del htmlspecialchars y funciona casi bien, pero tiene el problema que me dice pateketrueke, la noticia se muestra bien, con sus saltos de linea y demas, pero el textarea de edicion mete los br como texto normal en vez de salto de linea.

Entonces se me ocurren dos soluciones, o reconvertir los br con alguna funcion que desconozco, o lo que mas sentido tiene segun me dice pateketrueke, solo insertar los br al mostrarlo, cosa que he probado y algo debo estar haciendo mal que pasa de mi!!
  #8 (permalink)  
Antiguo 09/04/2011, 11:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 2 meses
Puntos: 2534
Respuesta: Utf8 encode con nl2br

osea, al mostrarlo en el documento... que ahí es donde funcionan los <br/>, pero no al mostrarlo en el textarea, ya que ahí... bueno, creo que ya te diste cuenta!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 09/04/2011, 11:11
 
Fecha de Ingreso: septiembre-2009
Mensajes: 51
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Utf8 encode con nl2br

Solucionado, estaba cometiendo un error al utilizar la funcion nl2br, pero la solucion es esa, solo utilizarlo al mostrar la noticia,

Gracias a todos!!
  #10 (permalink)  
Antiguo 13/04/2011, 14:07
 
Fecha de Ingreso: noviembre-2008
Mensajes: 31
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Utf8 encode con nl2br

gracias por dar la respuesta..

Etiquetas: encode, nl2br, utf-8
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 16:11.