Foros del Web » Programando para Internet » PHP »

problemas con comillas en input

Estas en el tema de problemas con comillas en input en el foro de PHP en Foros del Web. Hola foro!!! me acabo de dar cuenta que al meter en un <input type="text"> el contenido de un campo de mi BD que contiene unas ...
  #1 (permalink)  
Antiguo 28/02/2005, 10:14
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
problemas con comillas en input

Hola foro!!!

me acabo de dar cuenta que al meter en un <input type="text"> el contenido de un campo de mi BD que contiene unas comillas... a partir de éstas no me muestra el contenido del campo en el <input> del formulario... cómo lo puedo evitar??

Muchas gracias!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour

Última edición por X3mdesign; 28/02/2005 a las 10:17 Razón: confundí textarea con input :-P
  #2 (permalink)  
Antiguo 28/02/2005, 10:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. como construyes exactamente tu <input ....>

si lo haces así:

<input type="text" name="nose" value=<? echo $row['campo_bd'] ?>>

de esa forma (o similar .. observa que no puese comillas dobles en el value="...") cuando tu dato de tu BD tenga una comilla .. ahí se cerrará la instrucción o parámetro "value" del input .. y hasta ahí llegará tu texto .. Debes usar comillas:

Código PHP:
<input type="text" name="nose" value="<? echo $row['campo_bd'?>">
Un saludo,
  #3 (permalink)  
Antiguo 28/02/2005, 10:44
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
lo hago de esta forma.... bueno, primero miro la capacidad del campo en la BD...:

Código PHP:
$leng_campo=mysql_field_len($sql_query,$i); 
Código PHP:
if($leng_campo>255){
    echo 
"<textarea class=\"tb_input\" name=\"$name_campo\" rows=\"4\" cols=\"63\" wrap=\"VIRTUAL\" maxlength=\"$leng_campo\" onactivate=\"nombreArea('$name_campo','$leng_campo')\">".$datos[$name_campo]."</textarea>";
}else{
    echo 
"<input class=\"tb_input\" name=\"$name_campo\" type=\"text\" value=\"".$datos[$name_campo]."\" size=\"60\" maxlength=\"$leng_campo\" onactivate=\"nombreArea('$name_campo','$leng_campo')\">";        

creo que es lo que has puesto... no?? gracias Cluster, estás a todas las preguntaS ;)
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #4 (permalink)  
Antiguo 28/02/2005, 10:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm Si no me falla la vista .. si, estás usando comillas para los "value" .. En ese caso te vendría usar:

stripslashes()
http://www.php.net/stripslashes

Código PHP:
value="".stripslashes($datos[$name_campo])."\" 
Un saludo,
  #5 (permalink)  
Antiguo 28/02/2005, 11:15
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
le he puesto lo que me has indicado... pero me sigue cortando la variable en la primera comilla que sale... éste es el código que me genera:

Código HTML:
<input class="tb_input" name="tema" type="text" value="Becas en "Japón" para posgraduados" size="60" maxlength="255" onactivate="nombreArea('tema','255')"> 
otro saludo
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #6 (permalink)  
Antiguo 28/02/2005, 11:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
ok, ok ...

Entonces .. tendrás que añadir el "slash" en lugar de quitarlo (como te indiqué) .. Pero lo ideal es que en la BD quedase con slash las comillas ...

Prueba con addslashes() a la hora de hacer tu value ....

Un saludo,
  #7 (permalink)  
Antiguo 01/03/2005, 03:50
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
Gracias Cluster y perdona pero ayer ya no pude mirar el correo... he puesto lo que me has indicado.. y sigue sin funcionar... me salía este códico en la page:

Código HTML:
value="\"Quien habla siembra, quien escucha cosecha\""
y me ponía sólo \ en el campo.

al final he echo este str_replace() y me ha funcionado.
Código PHP:
$datos[$name_campo]=str_replace('"',"&quot;",$datos[$name_campo]); 
Muchas gracias!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #8 (permalink)  
Antiguo 01/03/2005, 05:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
ok, tienes razón ...

En ese caso (para cubrir otros problemas con otros caracteres) podrías probar htmlentities()

Un saludo,
  #9 (permalink)  
Antiguo 01/03/2005, 11:16
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
genial Cluester, gracias :D
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
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:49.