Foros del Web » Programando para Internet » PHP »

Obtener url de donde estaba el usuario para redireccionarlo despues

Estas en el tema de Obtener url de donde estaba el usuario para redireccionarlo despues en el foro de PHP en Foros del Web. En mi web te puedes logear desde distintas paginas,lo que quiero es hacer una funcion que rediriga al usuario a la misma pagina de donde ...
  #1 (permalink)  
Antiguo 23/04/2009, 16:49
 
Fecha de Ingreso: marzo-2009
Mensajes: 105
Antigüedad: 15 años
Puntos: 0
Obtener url de donde estaba el usuario para redireccionarlo despues

En mi web te puedes logear desde distintas paginas,lo que quiero es hacer una funcion que rediriga al usuario a la misma pagina de donde fue llamado login.php a traves de un form.


redireccionar.php

function redir(url){

last_url=url;

href=last_url;
}


login.php

include redireccionar.php

//proceso de login

//termina el proceso de login queremos redireccionar al usuario

redir_url=$_post['last_url']
redir(redir_url);

//aqui tengo el problema , le tengo que pasar la url de donde estaba
a traves del form???o hay otra manera mejor?
  #2 (permalink)  
Antiguo 23/04/2009, 16:56
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Obtener url de donde estaba el usuario para redireccionarlo despues

En cada una de tus paginas, ve guardando la URL actual en una variable de SESSION (Excepto en el login). Luego en tu login, revisas si existe y redireccionas.
  #3 (permalink)  
Antiguo 23/04/2009, 17:12
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Obtener url de donde estaba el usuario para redireccionarlo despues

se puede hacer con $_SERVER['HTTP_REFERER']

login.php

include redireccionar.php

//proceso de login

//termina el proceso de login queremos redireccionar al usuario

header("Location:$_SERVER['HTTP_REFERER']");
  #4 (permalink)  
Antiguo 23/04/2009, 18:24
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Obtener url de donde estaba el usuario para redireccionarlo despues

HTTP_REFERER no siempre es enviado por el navegador, por lo que la solucion de Ronruby parece ser mas efectiva, logicamente funciona solo para paginas dentro del mismo sitio y no para paginas externas.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 23/04/2009, 19:07
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Obtener url de donde estaba el usuario para redireccionarlo despues

Cita:
Iniciado por Triby Ver Mensaje
HTTP_REFERER no siempre es enviado por el navegador, por lo que la solucion de Ronruby parece ser mas efectiva, logicamente funciona solo para paginas dentro del mismo sitio y no para paginas externas.
Asi es ;)
  #6 (permalink)  
Antiguo 24/04/2009, 02:03
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Respuesta: Obtener url de donde estaba el usuario para redireccionarlo despues

Hola disculpa la intromision, yo lo hice con javascript, se que este es un foro de PHP pero igual podria servite ya que viene combinado.

Primero que nada vamos a verlo separado para que no haya pierde

Javascript:
Cita:
javascript:history.go(-1)
Esto lo unico que va a hacer es revizar el historial y regresarnos a una pagina anterior a la actual.

Ahora aqui es donde lo colocamos dentro de PHP:
Cita:
header(javascript:history.go(-1));
Ahora bien si lo quieres utilizar como link puedes hacer esto
Cita:
echo "<a href='javascript:history.go(-1)'>Texto</a>";
Espero que esto pueda servirte de algo
  #7 (permalink)  
Antiguo 24/04/2009, 05:42
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 18 años, 10 meses
Puntos: 6
Respuesta: Obtener url de donde estaba el usuario para redireccionarlo despues

Otra manera: Include en el formulario de login un campo oculto con la URL de la página actual:

<input type="hidden" name="urlback" value="<?= $_SERVER['REQUEST_URI'] ?>">

Luego, en el login.php, además del login y password recuperas esta tercera variable. Si el login acaba bien, le haces un header("location: xxxx"); a la URL indicada por el parámetro urlback.
  #8 (permalink)  
Antiguo 24/04/2009, 08:37
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Obtener url de donde estaba el usuario para redireccionarlo despues

Cita:
Esto lo unico que va a hacer es revizar el historial y regresarnos a una pagina anterior a la actual.
Pero, digamos que pusiste tu información mal una vez, entonces te llevaría a la misma pagina de login. De hecho, si procesas en una pagina diferente tu formulario de login, te llevaria a la de login.
Y tendrías que hacer una REFRESH de la pagina para que te muestre como "logueado".

Cita:
Ahora aqui es donde lo colocamos dentro de PHP:
header(javascript:history.go(-1));
¿Que es eso? Eso no esta permitido, no existe tal cosa. PHP es un lenguaje de parte del servidor, y Javascript de lado del cliente.
  #9 (permalink)  
Antiguo 24/04/2009, 22:06
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Respuesta: Obtener url de donde estaba el usuario para redireccionarlo despues

Hola, tienes razon, el error es mio, confundi la sintaxis con otra cosa que estaba haciendo en ese momento, con header no funciona, solamente lo hace en forma de link.
  #10 (permalink)  
Antiguo 25/04/2009, 13:40
 
Fecha de Ingreso: marzo-2009
Mensajes: 105
Antigüedad: 15 años
Puntos: 0
voy a probar y os cuento

gracias por las respuestas

tengo estas dos funciones

//funcion almacenar url actual

function save_url()
{
$url=$_SERVER['HTTP_REFERER'];

setcookie("url","$url",time()+3600);

}

//redir to last url

function redir_anterior()
{

$url=$_COOKIE['url'];

echo '<script> parent.location.href = "'.$url.'" ;</script>';


}



ahora en una pagina tengo la primera y en la que proceso datos la segunda funcion...
pero no funciona...

Última edición por GatorV; 25/04/2009 a las 15:18
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 22:13.