返回进行重定向请求的页面

时间:2016-04-24 19:01:42

标签: java php jsp redirect web

很多相关问题都有很多回答,但我想知道什么是最好和建议的方法。

问题很简单。我希望在不满足条件时从一个页面重定向到另一个页面,并且在重定向页面中此条件成立后,返回到php或jsp中请求重定向的同一页面页

更多相关示例将是:当用户想要从网站购买产品时,当他选择产品并想要付款时,该网站会检查用户是否已登录该网站。如果不是登录页面,登录后,将用户直接带到支付页面,而不是通常登录页面所需的主页。

有一些选项,比如存储会话和将请求的URL存储在会话变量中,然后使用它返回页面。

但我的问题是找到最合适的标准。 详细的答案表示赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

与CODE一起的理论解释:

首先,您需要动态获取当前页面,因此在PHP中我们有$_SERVER来完成工作所以我们可以使用以下代码来获取当前的PHP页面名称:

$redirect_page =  basename($_SERVER['PHP_SELF']); /* Returns The Current PHP File Name */

注意:您只能使用上述代码获取当前的PHP文件名称,而不是整个网址。

然后我们需要使用可以存储值的内容,以便能够在下一个重定向页面上使用它,因此我们有 COOKIES & PHP中的 SESSIONS 可以完成这项工作,在这里我将与您分享这两种方法。因为我们已经获得了页面名称,所以我们需要存储它。

使用COOKIES:

我们可以这样创建一个cookie:

setcookie("redirect_page", $redirect_page, time()+20);

正如您所看到的,我们在此处创建了一个cookie并将重定向页面名称存储在其中。 现在,当您使用header

以这种方式重定向到另一个时
header("Location: 2nd_page.php");

在第二页上,您可以将页面重定向到您重定向的第一页,如下所示:

if ($value1 != $value2) {
$redirect_back = $_COOKIE['redirect_page'];
header("Location: $redirect_back");
}

使用会话:

我们可以这样创建一个会话:

$_SESSION['redirect_page'] = $redirect_page;

正如您所看到的,我们在此处创建了一个cookie并将重定向页面名称存储在其中。 现在,当您使用header

以这种方式重定向到另一个时
header("Location: 2nd_page.php");

在第二页上,您可以将页面重定向到您重定向的第一页,如下所示:

if ($value1 != $value2) {
$redirect_back = $_SESSION['redirect_page'];
header("Location: $redirect_back");
}

注意:在尝试访问session_start()数组之前,以及在将任何输出发送到浏览器之前,请记住在这两个页面上运行$_SESSION语句。