gpt4 book ai didi

PHP 重定向回上一页

转载 作者:可可西里 更新时间:2023-11-01 00:14:40 25 4
gpt4 key购买 nike

我对 login.php 页面所做的是,如果用户已登录,他将被重定向到 first.php 页面。

session_start();
if(isset($_SESSION['usr']) && isset($_SESSION['pswd'])){
header("Location: first.php");
}

在所有其他页面中,如果用户尚未登录,他将被重定向到 login.php 页面。

session_start();
if(!isset($_SESSION['usr']) || !isset($_SESSION['pswd'])){
header("Location: login.php");
}

问题来了:有没有办法将用户重定向回原来的位置?假设您在未登录的情况下尝试访问 second.php,您现在将被重定向到 login.php 页面;登录后,是否可以将您重定向回 second.php 而不是 first.php?

我尝试使用 $_SERVER['HTTP_REFERER'],但是这个变量不包含任何内容;如果您因为点击了链接而来到这里,它只会包含一些内容。

最佳答案

  1. 在他们尝试登录的页面上,设置一个包含该页面 URL 的 session 变量。
  2. 然后将他们重定向到登录页面。
  3. 成功登录后,从他们的 session 中获取之前的 URL 并将他们重定向到那里。

让执行重定向的页面设置一个 session 变量,即该页面的 URL:

session_start();
if (!$logged_in)
{
$_SESSION['redirect_url'] = $_SERVER['PHP_SELF'];
header('Location: login.php');
exit;
}

然后在成功登录后将他们重定向到该 URL:

session_start();

/* Login code goes here */

$redirect_url = (isset($_SESSION['redirect_url'])) ? $_SESSION['redirect_url'] : '/';
unset($_SESSION['redirect_url']);
header("Location: $redirect_url", true, 303);
exit;

上面的内容可以改进,但这应该给你想法。

关于PHP 重定向回上一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17847316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com