很多相关问题都有很多回答,但我想知道什么是最好和建议的方法。
问题很简单。我希望在不满足条件时从一个页面重定向到另一个页面,并且在重定向页面中此条件成立后,返回到php或jsp中请求重定向的同一页面页
更多相关示例将是:当用户想要从网站购买产品时,当他选择产品并想要付款时,该网站会检查用户是否已登录该网站。如果不是登录页面,登录后,将用户直接带到支付页面,而不是通常登录页面所需的主页。
有一些选项,比如存储会话和将请求的URL存储在会话变量中,然后使用它返回页面。
但我的问题是找到最合适的标准。 详细的答案表示赞赏。提前谢谢。
答案 0 :(得分:2)
你可以这样做:
首先,您需要动态获取当前页面,因此在PHP中我们有$_SERVER
来完成工作所以我们可以使用以下代码来获取当前的PHP页面名称:
$redirect_page = basename($_SERVER['PHP_SELF']); /* Returns The Current PHP File Name */
注意:您只能使用上述代码获取当前的PHP文件名称,而不是整个网址。
然后我们需要使用可以存储值的内容,以便能够在下一个重定向页面上使用它,因此我们有 COOKIES & PHP中的 SESSIONS 可以完成这项工作,在这里我将与您分享这两种方法。因为我们已经获得了页面名称,所以我们需要存储它。
我们可以这样创建一个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
语句。