登录后如何重定向到同一页面

时间:2011-01-27 12:09:12

标签: php login

我有一个购物车产品页面,如果有人点击产品添加到购物车按钮,他们将被重定向到登录页面。

成功登录后,我需要将用户发回相同的产品页面。

6 个答案:

答案 0 :(得分:11)

一个简单的解决方案是在转到登录页面之前将“return”URL存储在会话变量中。登录页面将检查是否存在会话变量,然后在使用标题位置重定向之前将其取消设置,以将用户返回到相关URL。

例如,在您使用的登录页面上:

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

答案 1 :(得分:3)

您应该跟踪每个网页的网址: as:<?php $_SESSION['url'] = $_SERVER['REQUEST_URI']; ?>

现在使用那个: <?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"); ?.

答案 2 :(得分:1)

在重定向到登录页面时发送网址作为GET参数返回:

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

在login.php中解码return_url参数(/cart/products.php)并在成功登录时将用户发送到那里。

答案 3 :(得分:1)

当您重定向到登录页面时,将截获的URL(通常称为返回URL)放入会话变量(或适当的其他存储)中。然后,登录完成后,您可以重定向到此URL。

您有时会在登录过程中看到网站查询字符串中的返回网址。例如,如果您在未登录任何Google帐户时访问docs.google.com,则可以在查询字符串中看到“继续”值,如下所示:

https://www.google.com/accounts/ServiceLogin?service = writely&amp; passive = 1209600&amp; continue = http://docs.google.com/& followup = http://docs.google.com /&安培; ltmpl =主页

答案 4 :(得分:0)

保持

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

并在表单中获得redirurl值。

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

header("Location:$url");

redirurl存储了之前的Pageurl。保留注册和登录页面的会话,以便它不会复制那些页面URL。

答案 5 :(得分:-1)

您可以使用浏览器的参考资料将用户发回给他们来自的页面:

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