Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Dudas con MySQL, PHP y textarea.

Estas en el tema de Dudas con MySQL, PHP y textarea. en el foro de PHP en Foros del Web. Hola. Tengo dos dudas. 1) Si quiero realizar, mediante PHP, un insert a una tabla en una BD de MySQL pero los datos (string) opcionalmente ...
  #1 (permalink)  
Antiguo 10/08/2013, 16:37
 
Fecha de Ingreso: enero-2012
Mensajes: 44
Antigüedad: 12 años, 2 meses
Puntos: 0
Pregunta Dudas con MySQL, PHP y textarea.

Hola. Tengo dos dudas.

1) Si quiero realizar, mediante PHP, un insert a una tabla en una BD de MySQL pero los datos (string) opcionalmente pueden presentar en alguna parte un par de ' ', eso MySQL lo toma como que estoy delimitando un string cuando que solamente forman parte del contenido que debe guardar. Quiero saber como evitar esto último, si por ejemplo el usuario ingresa en un textbox: mi nombre es juan 'rulo' perez. Que MySQL lo guarde tal cual, incluyendo las ' ' y no considerando a eso como un string.

2) Tengo un text area dentro de un form en una página html, en el cual el usuario puede ingresar información. ¿Cómo puedo hacer para que cuando el usuario presiona enter, o sea, salto de línea, eso se transforme en un <br/> así se guarda de esa manera en MySQL? Así cuando muestro esa información se muestra como el usuario quería, con un salto de línea.

Saludos y desde ya muchas gracias.
  #2 (permalink)  
Antiguo 10/08/2013, 17:54
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Dudas con MySQL, PHP y textarea.

1) lee sobre escapar caracteres con php para consultas a base de datos.
también sirve para incrementar la seguridad de tu web al impedir sql injection.

2) en la base de datos se guardarán los saltos de línea tal cual, el problema es al sacar los datos de la bd, es ahí donde tienes que utilizar la etiqueta <pre></pre> de html al mostrar la información dentro de por ejemplo un <div>.

saludos! :)
  #3 (permalink)  
Antiguo 10/08/2013, 21:21
 
Fecha de Ingreso: enero-2012
Mensajes: 44
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Dudas con MySQL, PHP y textarea.

La 1) está solucionada.

La 2) tal como decís se guarda bien en la BD, el problema es mostrarlo. Puse las etiquetas mencionadas pero se escapa por fuera de los límites del div si hago eso, es decir, muestra a lo largo de toda la página. ¿Cómo puedo controlarlo?
  #4 (permalink)  
Antiguo 10/08/2013, 22:52
 
Fecha de Ingreso: agosto-2013
Mensajes: 8
Antigüedad: 10 años, 8 meses
Puntos: 3
Respuesta: Dudas con MySQL, PHP y textarea.

usa la funcion nl2br(), http://php.net/manual/es/function.nl2br.php
  #5 (permalink)  
Antiguo 11/08/2013, 05:17
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Dudas con MySQL, PHP y textarea.

esa función no la conocía yo, gracias javieer!
  #6 (permalink)  
Antiguo 11/08/2013, 08:19
 
Fecha de Ingreso: enero-2012
Mensajes: 44
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Dudas con MySQL, PHP y textarea.

Funcionó perfecto, gracias a los dos!
  #7 (permalink)  
Antiguo 29/08/2013, 14:46
 
Fecha de Ingreso: enero-2012
Mensajes: 44
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Dudas con MySQL, PHP y textarea.

Vuelvo con más dudas respecto a la pregunta 1). Cambié de servidor, y sin escapar los caracteres me guarda bien aquellos textos que contengan comillas dobles ("). Pero aquellos que contengan comillas simples (') no, tira error MySQL. Si escapo la cadena, me guarda bien todos los textos, pero agrega una barra invertida (\) dodne hay comillas dobles, que cuando recupero la cadena y la muestro están ahí y obviamente no queda nada estético.

¿Qué se puede hacer? Saludos.
  #8 (permalink)  
Antiguo 29/08/2013, 15:47
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Dudas con MySQL, PHP y textarea.

Cita:
Iniciado por Josecanalla Ver Mensaje
Vuelvo con más dudas respecto a la pregunta 1). Cambié de servidor, y sin escapar los caracteres me guarda bien aquellos textos que contengan comillas dobles ("). Pero aquellos que contengan comillas simples (') no, tira error MySQL. Si escapo la cadena, me guarda bien todos los textos, pero agrega una barra invertida (\) dodne hay comillas dobles, que cuando recupero la cadena y la muestro están ahí y obviamente no queda nada estético.

¿Qué se puede hacer? Saludos.
mysqli_real_escape_string() para escapar caracteres.

stripslashes() para quitar las barras invertidas introducidas al escapar caracteres.

saludos
__________________
Ayúdame a hacerlo por mi mismo.

Etiquetas: dudas, html, mysql, tabla
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 01:20.