2011-01-27 44 views

Respuesta

11

Una solución simple sería almacenar la URL de "devolución" en una variable de sesión antes de iniciar la página de inicio de sesión. La página de inicio de sesión verificaría la presencia de la variable de sesión y luego la desactivó antes de usar una ubicación de encabezado redirigida para devolver al usuario a la URL en cuestión.

Por ejemplo en la página de inicio de sesión que tendría que utilizar:

// Successfully logged in... 
$destURL = $_SESSION['kickurl'] ? $_SESSION['kickurl'] : '/index.php'; 
unset($_SESSION['kickurl']); 
header('Location: ' . $destURL); 
exit(); 
+0

Me gusta mucho su respuesta – Navruk

+0

@Navruk Gracias - espero que vaya bien. :-) –

-1

puede enviar el usuario a la página de su procedencia, utilizando árbitro de su navegador:

header('Location: ' . $_SERVER['HTTP_REFERER']);

+0

No confiable; No hay garantía de que el navegador suministre este valor o que sea correcto. –

+0

Es decir, si HTTP_REFERER es una url local, no una remota;) –

1

Enviar la url a la que volver como un parámetro GET en el redireccionamiento a la página de inicio de sesión:

/login.php?return_url=%2Fcart%2Fproducts.php 

En login.php usted decodifica el parámetro return_url (/cart/products.php) y lo envía al usuario con éxito al iniciar sesión.

1

Cuando redirige a la página de inicio de sesión, inserte la URL que ha interceptado (a menudo llamada URL de retorno) en una variable de sesión (o en otro tipo de almacenamiento, según corresponda). Luego, cuando se complete el inicio de sesión, puede redireccionar a esta URL.

A veces se ve la URL de retorno en las cadenas de consulta del sitio web durante un proceso de inicio de sesión. Por ejemplo, si va a docs.google.com cuando no ha iniciado sesión en ninguna cuenta de Google, puede ver un valor "continuar" en la cadena de consulta de la siguiente manera:

https: //www.google.com/accounts ?/ServiceLogin servicio = writely & pasiva = 1209600 & continúan = http: //docs.google.com/ & seguimiento = http: //docs.google.com/ & ltmpl = página de inicio

3

debe realizar un seguimiento de la url de cada página: como: <?php $_SESSION['url'] = $_SERVER['REQUEST_URI']; ?>

y ahora el uso que uno: <?php session_start();
if(isset($_SESSION['url'])) $url = $_SESSION['url']; // url for last page visited. else $url = "index.php"; // page you want to redirect by default header("Location: http://abc.com/$url"); ?.

0

Mantenga el

<input type="hidden" name="redirurl" value="<? echo $_SERVER['HTTP_REFERER']; ?>" /> 

y obtener redirurl valor en forma posterior.

if(isset($_REQUEST['redirurl'])) 
    $url = $_REQUEST['redirurl']; // holds url for last page visited. 
else 
    $url = "myprofile.php"; // default page 

header("Location:$url"); 

redirurl almacena el Pageurl anterior. mantenga la sesión para las páginas de registro e inicio de sesión para que no copie la URL de la página.

Cuestiones relacionadas