Foros del Web » Programando para Internet » PHP »

Variables GET y símbolos "?" y "&"

Estas en el tema de Variables GET y símbolos "?" y "&" en el foro de PHP en Foros del Web. ¡Hola!, Pensé que la única solución a mi problema era sustituir la variable GET, pasada por la URL, pero no... Tengo la URL, con una ...
  #1 (permalink)  
Antiguo 04/05/2012, 12:23
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años, 6 meses
Puntos: 1
Variables GET y símbolos "?" y "&"

¡Hola!,

Pensé que la única solución a mi problema era sustituir la variable GET, pasada por la URL, pero no... Tengo la URL, con una variable, así: http://www.web.com/index.php?error=1

Pero... ¿qué pasa? Que cuando paso otra variable, queda así: http://www.web.com/index.php?error=1?error=2

Lo que marco en rojo es el error, y que no logro solucionar. Sé que tendría que ser un &, pero no sé cómo hacerlo... ¿Cómo lo hago?

Gracias de antemano,
¡Saludos!
  #2 (permalink)  
Antiguo 04/05/2012, 12:32
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: Variables GET y símbolos "?" y "&"

Cita:
Pero... ¿qué pasa? Que cuando paso otra variable, queda así: http://www.web.com/index.php?error=1?error=2
Aquí existe un error de concepto. Por el GET uno le va a pasar unas variables y a partir de alli tomara decisiones.

Lo correcto es:

Código PHP:
http://www.web.com/index.php?error=1
o
http
://www.web.com/index.php?error=2 
no puedes pasar error=1&error=2 porque al ser una condición lógica AND error jamas sera 1 y 2.

En el script tu debes colocar en caso de que sea 1 haga esto y en caso de que sea 2 haga lo otro.
__________________
Blog de humor http://elcuasatar.net63.net/
  #3 (permalink)  
Antiguo 04/05/2012, 12:34
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 3 meses
Puntos: 139
Respuesta: Variables GET y símbolos "?" y "&"

Código HTML:
Ver original
  1. http://www.web.com/index.php?error[]=1&error[]=2

Para recuperrarla

Código PHP:
Ver original
  1. echo $_GET['error'][0]."<br />";
  2. echo $_GET['error'][1];
Saludos
  #4 (permalink)  
Antiguo 04/05/2012, 12:40
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 3 meses
Puntos: 139
Respuesta: Variables GET y símbolos "?" y "&"

Perdón creo que salí de contexto , en principio pensé que buscabas pasar en una misma variable con dos valores distintos.

Pero mirando el ejemplo cuasatar entiendo que se trata de validar el valor de una variable, tal cual como lo dice el colega.

Saludos.
  #5 (permalink)  
Antiguo 04/05/2012, 12:50
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Variables GET y símbolos "?" y "&"

Son errores que he creado para el inicio de sesión. Si la variable vale 1, se muestra un div con el error. Si vale 2, otro. Una vez iniciada la sesión, redirecciono a getenv('HTTP_REFERER') con la sesión ya iniciada o con el error. Por eso no puedo asegurar que la página siempre sea "index.php". Puede que sea "lista.php"... O si la variable ya está pasada por la URL (por ejemplo: con el valor 2), getenv('HTTP_REFERER') sería, por ejemplo, así: index.php?error=2

Es que no se si me explico, lo siento :S
  #6 (permalink)  
Antiguo 04/05/2012, 16:35
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: Variables GET y símbolos "?" y "&"

Cita:
Son errores que he creado para el inicio de sesión. Si la variable vale 1, se muestra un div con el error. Si vale 2, otro. Una vez iniciada la sesión, redirecciono a getenv('HTTP_REFERER') con la sesión ya iniciada o con el error. Por eso no puedo asegurar que la página siempre sea "index.php". Puede que sea "lista.php"... O si la variable ya está pasada por la URL (por ejemplo: con el valor 2), getenv('HTTP_REFERER') sería, por ejemplo, así: index.php?error=2
No se entiende lo que tratas de hacer.
__________________
Blog de humor http://elcuasatar.net63.net/

Última edición por cuasatar; 04/05/2012 a las 16:47
  #7 (permalink)  
Antiguo 05/05/2012, 03:00
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Variables GET y símbolos "?" y "&"

Vosotros suponéis que la página es "index.php". Pero... ¿quién sabe? Quizás es "lista.php", "ejemplo.php", etc...

Cuando el usuario inicia sesión, vuelve a la página de donde viene mediante getenv('HTTP_REFERER'). ¿Qué pasa? Que si la página de origen es "http://www.web.com/index.php?error=1" y no "http://www.web.com/index.php" (nótese que la primera URL ya tiene la variable GET), getenv('HTTP_REFERER') es igual a "http://www.web.com/index.php?error=1".

Por lo tanto, si le vuelvo a pasar una variable quedaría así:
http://www.web.com/index.php?error=1?error=2

En principio decía de cambiar el segundo "?" por "&"... ¿Qué hago?
  #8 (permalink)  
Antiguo 05/05/2012, 07:15
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 3 meses
Puntos: 139
Respuesta: Variables GET y símbolos "?" y "&"

No entiendo del todo los métodos que utilizas para lograr tus objetivos, en tu ultimo post creo que entendí el algoritmo que buscas, fíjate si esto te sirve.


Código PHP:
Ver original
  1. $error  = 0;
  2. $url    = explode("?", getenv('HTTP_REFERER'));
  3. $error  = ( count($url) > 1 )
  4. ? substr($url[1], 6, 1)
  5. : substr($_SERVER['QUERY_STRING'], 6, 1);
  6.  
  7.     if ($error == 1){
  8.  
  9.         header("Location: ".$url[0]."?error=".$error);
  10.        
  11.     } elseif ($error == 2) {
  12.        
  13.         header("Location: ".$url[0]."?error=".$error);
  14.        
  15.     } else {
  16.    
  17.         echo "No hacer nada";
  18.     }

Saludos.
  #9 (permalink)  
Antiguo 05/05/2012, 14:35
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Variables GET y símbolos "?" y "&"

Supongo que me funcionará, pero en "entrar.php" tengo el siguiente código y no sé cómo meter este que me has dado:
Código PHP:
Ver original
  1. <?
  2. // Configura los datos de tu cuenta
  3. include('config.php');
  4.  
  5. $pag=getenv('HTTP_REFERER');
  6.  
  7. // Conectar a la base de datos
  8. mysql_connect ($dbhost, $dbusername, $dbuserpass);
  9. mysql_select_db($dbname) or die('No se puede seleccionar la base de datos | <a href=javascript:history.go(-1)>volver</a>');
  10.  
  11. if ($_POST['username']) {
  12. //Comprobacion del envio del nombre de usuario y password
  13. $username=$_POST['username'];
  14. $password=$_POST['password'];
  15. if ($password==NULL) {
  16. header("Location: $pag?error=2");
  17. }
  18. else{
  19. $query = mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'") or die(mysql_error());
  20. $data = mysql_fetch_array($query);
  21. if($data['password'] != $password) {
  22. header("Location: $pag?error=1");
  23. }else{
  24. $query = mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'") or die(mysql_error());
  25. $row = mysql_fetch_array($query);
  26. $_SESSION["s_username"] = $row['username'];
  27. $_SESSION["logeado"] = "SI";
  28. header('Location:' . getenv('HTTP_REFERER'));
  29. }
  30. }
  31. }
  32. ?>

Me da error cuando intento meterlo, seguro que algo hago mal. ¿Cómo me quedaría el código final?
  #10 (permalink)  
Antiguo 05/05/2012, 14:42
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 3 meses
Puntos: 139
Respuesta: Variables GET y símbolos "?" y "&"

Ok intenta de este modo

Código PHP:
Ver original
  1. // Configura los datos de tu cuenta
  2. include('config.php');
  3.  
  4. $url    = explode("?", getenv('HTTP_REFERER'));
  5.  
  6.  
  7. // Conectar a la base de datos
  8. mysql_connect ($dbhost, $dbusername, $dbuserpass);
  9. mysql_select_db($dbname) or die('No se puede seleccionar la base de datos | <a href=javascript:history.go(-1)>volver</a>');
  10.  
  11. if ($_POST['username']) {
  12. //Comprobacion del envio del nombre de usuario y password
  13. $username=$_POST['username'];
  14. $password=$_POST['password'];
  15. if ($password==NULL) {
  16.  
  17.  header("Location: ".$url[0]."?error=2");
  18.  
  19. }
  20. else{
  21. $query = mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'") or die(mysql_error());
  22. $data = mysql_fetch_array($query);
  23. if($data['password'] != $password) {
  24.  header("Location: ".$url[0]."?error=1");
  25. }else{
  26. $query = mysql_query("SELECT username,password FROM usuarios WHERE username = '$username'") or die(mysql_error());
  27. $row = mysql_fetch_array($query);
  28. $_SESSION["s_username"] = $row['username'];
  29. $_SESSION["logeado"] = "SI";
  30. header('Location:'.getenv('HTTP_REFERER'));
  31. }
  32. }
  33. }

Saludos.
  #11 (permalink)  
Antiguo 05/05/2012, 17:13
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Variables GET y símbolos "?" y "&"

Muchísimas gracias, funciona perfecto :D

¡Saludos!

Etiquetas: simbolos, 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 09:59.