Foros del Web » Programando para Internet » PHP »

Problema con comillas pasadas por get

Estas en el tema de Problema con comillas pasadas por get en el foro de PHP en Foros del Web. Hola a tod@s, tengo un problema al pasar comillas por get. Ya he leído toda la información que hay en los foros, mi código es: ...
  #1 (permalink)  
Antiguo 12/11/2008, 04:54
 
Fecha de Ingreso: abril-2008
Mensajes: 69
Antigüedad: 16 años
Puntos: 0
Problema con comillas pasadas por get

Hola a tod@s,
tengo un problema al pasar comillas por get. Ya he leído toda la información que hay en los foros, mi código es:


Primero: en el enlace que lleva los datos utilizo urlencode

Código PHP:
    <a class="boton" href="consulta.php?condicion=<?php echo urlencode($_SESSION["condicion"]);?>&suma=<?php echo $suma;?>&media=<?php echo $media;?>&agrupar=<?php echo $agrupar;?>">consulta</a> </td>
Segundo: al llegar a la página destino, para comprobar que los datos llegan bien, he hecho un echo

Código PHP:
echo stripslashes($condiciont); 
y todo llega perfectamente:

ejemplo:cp="22456"

Con lo cual no tendría que haber ningun problema, pero cuando vuelvo a coger el contenido de esa variable para meterla en un campo hidden que posteriormente utilizo para realizar consultas, el contenido que mete en el campo hidden es siguiendo el ejemplo anterior:

cp=

Como se puede ver, omite todo el contenido que hay entre comillas, incluidas las comillas.
Y la linea de código es exactamente la misma de antes, con lo cual debería funcionar

Código HTML:
<input type="hidden" name="condiciont" value="<?php echo stripslashes($condiciont);?>" size="9" maxlength="100" class="consulta"> 
¿alguién puede ayudarme?Es que no se donde puede estar el error.

Muchas gracias. Saludos.
  #2 (permalink)  
Antiguo 12/11/2008, 07:17
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Problema con comillas pasadas por get

es preferible que uses rawurlencode() y si compañera rawurldecode()
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 12/11/2008, 10:16
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Problema con comillas pasadas por get

no he entendido cual es tu problema.. pero he hecho un pequeño ejercicio y me ha funcionado lo siguiente

Código PHP:
<?php
echo "<pre>";
print_r($_REQUEST);
echo 
"</pre>";
?>
<a href="?condicion=<?php echo urlencode('CP="123"');?>">consulta</a>
Podrias explicar mejor que es lo que necesitas hacer ??
  #4 (permalink)  
Antiguo 13/11/2008, 02:30
 
Fecha de Ingreso: abril-2008
Mensajes: 69
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con comillas pasadas por get

Muchas gracias por contestar.
Emiliodeg, he probado con los comandos que me dices, pero no funciona, sigue ocurriendo lo mismo.

En cuanto a lo que quiero hacer, estoy haciendo una página de consultas, pero el usuario puede establecer condiciones antes de ejecutar las consultas, pero claro, las condiciones que son de tipo texto deben ir entre comillas, por ejemplo, si quiero que

nombreAlmacen="catri"

Pues aqui está mi problema,lo explico paso a paso:

1. En la página condicion.php el usuario marca sus condiciones que se van almacenando en una variable de sesion, la cual paso por get a la página consulta.php q es donde realmente hago la cosulta.


Código HTML:
<a class="boton" href="consulta.php?condicion=<?php echo urlencode($_SESSION["condicion"]);?>&suma=<?php echo $suma;?>&media=<?php echo $media;?>&agrupar=<?php echo $agrupar;?>">consulta</a> </td> 

2. Una vez que llega a la página consulta.php, he hecho un echo de la variable para ver si estaba pasando bien los parámetros (esto luego lo quito, pq solo lo quiero para comprobar que todo va bien)


Código PHP:
echo stripslashes($condiciont); 
3. Utilizo un campo hidden, donde meto las condiciones marcadas, y luego ese campo lo utilizo en una consulta del tipo select.....

<
Código HTML:
input type="hidden" name="condiciont" value="<?php echo stripslashes($condiciont);?>" size="9" maxlength="100" class="consulta">

El problema es que cuando hago el echo de la comprobacion los datos estan correctamente, es decir, siguiendo con el ejemplo anterior me pone

nombreAlmacen="catri"

Sin embargo en el campo hidden que es el q utilizo para la consulta, y el q realmente necesito me coge

nombreAlmacen=

Con lo cual no puedo ejecutar bien la consulta pq no tengo la condicion correcta.
Entonces no se pq en el primer echo que hago todo esta perfectamente, y sin embargo en el segundo echo que hago (que es el que realmente necesito) la informacion se corta despues del igual.


Espero haberme explicado.

Mucha gracias.Saludos.
  #5 (permalink)  
Antiguo 13/11/2008, 07:49
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Problema con comillas pasadas por get

Y necesariamente tienes que utilizar comillas dobles.. no se puede hacer con comillas simples.. porque si ese fuera el caso seria de esta forma:

Código HTML:
<a href="?condicion=<?php echo urlencode("CP='123'");?>">consulta</a>
<input type="text" name="algo" value="<?php echo $_REQUEST['condicion'] ?>" /> 
ahora si quieres utilizar las comillas dobles .. entonces el codigo quedaria asi:

Código HTML:
<a href="?condicion=<?php echo urlencode('CP="123"');?>">consulta</a>
<input type="text" name="algo" value='<?php echo $_REQUEST['condicion'] ?>' /> 
nota la diferencia en la propiedad de value que va desde

Código:
value=" " // ejemplo arriba
value=' '   // ejemplo abajo
  #6 (permalink)  
Antiguo 17/11/2008, 02:41
 
Fecha de Ingreso: abril-2008
Mensajes: 69
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con comillas pasadas por get

Muchas gracias erlingfiallos,
es que tenía una mezcla de ambas posibiliades, pero gracias a tus ejemplos perfectamente detallados lo he hexo utilizando comillas dobles.

Gracias.
Saludos.
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 15:42.