Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Variables en la URL no llegan con GET

Estas en el tema de Variables en la URL no llegan con GET en el foro de PHP en Foros del Web. He reeditado esta consulta, para que me puedan entender: 1) En la pagina index.php tengo 12 links que van a la misma pagina index.php. 2) ...
  #1 (permalink)  
Antiguo 17/06/2015, 18:11
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 13 años, 11 meses
Puntos: 4
Variables en la URL no llegan con GET

He reeditado esta consulta, para que me puedan entender:

1) En la pagina index.php tengo 12 links que van a la misma pagina index.php.
2) Al hacer click en estos links, llevan en la URL distintas variables (2 variables con el mismo nombre) y hacen diferentes cosas en la pagina index.php, como por ejemplo, leer tablas diferentes de bases de datos, etc.
3) Todo funciona a la perfección, ya que en la misma pagina tengo las urls y los gets, el unico problema es que:

al ingresar a index.php por primera vez no hay ninguna variable definida y los get no tienen variables para capturar e intenté la siguiente solución:

Cita:
<?php

if (isset($al) ){
$al="Cereales"; /* ES DECIR, SI LA VARIABLE NO ESTA DEFINIDA, ENTONCES HACE ESTO*/
$bl="Cereales";
}
else {
$al=$_GET['var1']; /* ES DECIR SI LA VARIABLE SI ESTÁ DEFINIDA, CAPTURA CON GET LO QUE ENVIA CADA LINK*/
$bl=$_GET['var2'];

}

require_once('Connections/Conexion.php');
Y si bien hace todo perfecto, el problema es al principio, al entrar al sitio por primera vez, pone este mensaje:

Cita:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY nombre ASC' at line 1

Este script funciona perfectamente, cuando la variable está definida va al ELSE y no hay problema. El tema es al principio, que no existe variable definida.
Probé también con empty en vez de isset y lo que sucedió es que nunca entro al ELSE y siempre quedó en el IF, enviando siempre las variables $al y $bl con el nombre de "CEREALES".

Se que estoy cerca, pero no lo pude solucionar. Gracias!

Última edición por omdsetenta; 17/06/2015 a las 19:24
  #2 (permalink)  
Antiguo 17/06/2015, 19:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.538
Antigüedad: 10 años, 2 meses
Puntos: 969
Respuesta: Variables en la URL no llegan con GET

Con esto debería de ser suficiente:

Código PHP:
Ver original
  1. if ($_GET){
  2.     //Haces cosas con las variables recibidas mediante el método GET
  3. }
  4. else{
  5.     //Haces otras cosas
  6. }

Si aún no recibes datos mediante el método GET, este array asociativo no estará definido y por lo tanto se ejecutará el bloque de código else.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 18/06/2015, 19:04
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: Variables en la URL no llegan con GET

Muchas gracias por contestar. Lamentablemente aun no ha funcionado. En el siguiente código, al iniciar la pagina index.php logicamente va al else (ya que $al y $bl no estan definidas, y colocandoles el valor $al=$bl="Cereales")

Cita:

<?php
if($_GET["al"])
{
$al=$_GET['var1'];
$bl=$_GET['var2'];
}

else
{
$al="Cereales";
$bl="Cereales";
}

require_once('Connections/Connection.php');
...
...
?>
Ahora una vez que entré a la pagina index.php (ya no da error como antes), hago click en el siguiente link:

Cita:
<a class="contenido" hrref="index.php?var1=Comida&amp;var2=Comida">
<!-- (le agregue una r a hrref en la edicion en este sitio para que no cambie el enlace por otro sin sentido)
-->
Con la idea de que ahora las variables que se llamaban "Cereales" se llamen "Comida" y hagan otra cosa.
El problema es que siguen haciendo lo mismo: Siempre va al ELSE y las llama "Cereales".
No se cual puede ser el error. Por mas que la variable se llame "Cereales" (y por lo tanto esté definida) al hacer click en el enlace, no cambia los valores "Cereales" por "Comida". Es más que evidente que al hacer click en el enlace sigue sin reconocer esta variable por mas que le pase var1=Comida y var2=Comida. ¿Dónde podría estar el error? Muchas gracias!
  #4 (permalink)  
Antiguo 18/06/2015, 19:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 9 meses
Puntos: 2534
Respuesta: Variables en la URL no llegan con GET

Cita:
¿Dónde podría estar el error?
Fácil: tus condiciones se basan en la existencia/valor de $_GET["al"] ¿pero en qué momento es que la pasas por la URL?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 18/06/2015, 19:14
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: Variables en la URL no llegan con GET

Es que yo pienso que una vez que ingrese por primera vez al index.php ya está definiendo las variables como "Cereales" y cuando clickeo el enlace que esta en la misma pagina index.php ya la variable $al y $bl estarían definidas como "Cereales" y en consecuencia, debería cambiarlas por "Comida" (en el primer if)
  #6 (permalink)  
Antiguo 18/06/2015, 19:49
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: Variables en la URL no llegan con GET

Ahora voy entendiendo: La variable debe definirse al hacer click en el enlace y no por medio de una definición que yo haga posteriormente. Y como cuando ingreso al sitio por primera vez no se hace click en ningun lado de mi sitio (se hace click en un buscador), yo debería modificar la url del buscador para que pueda funcionar y esto parece imposible.
  #7 (permalink)  
Antiguo 18/06/2015, 19:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 9 meses
Puntos: 2534
Respuesta: Variables en la URL no llegan con GET

No entendiste nada de lo que te he dicho, mira bien tu código:
Código PHP:
Ver original
  1. if($_GET["al"])

Ahí estás usando la variable "al" pero jamás la defines, jamás, jamás, jamás.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 18/06/2015, 19:56
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: Variables en la URL no llegan con GET

¿No hay forma de definirla sin hacer click en el enlace, es decir, en la url inicial index.php?
  #9 (permalink)  
Antiguo 18/06/2015, 20:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 9 meses
Puntos: 2534
Respuesta: Variables en la URL no llegan con GET

No, sencillamente no.

Las variables $_GET están destinadas únicamente para la URL.

Así que mientras no la pases por un enlace jamás existirá en tu contexto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 18/06/2015, 20:14
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: Variables en la URL no llegan con GET

Bien explicado, lo que pasa es que quiero resumir todo el sitio en 4 o 5 paginas y manejar todo con bd MySQL. Tendré que hacer una pagina para index sin gets y que los enlaces de la pagina index se dirigan a otra pagina php y no a la misma, para que pueda poner los gets sin problemas. Gracias.

Etiquetas: llegan, tabla, url, variable, variables
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 18:20.