我有一个登录表单。我希望当用户登录其帐户时,他会被重定向到他在最后一次登录会话中注销之前访问的最后一个页面。我试过使用
if(!isset($_SESSION))
{
session_start();
}
$_SESSION['url'] = $_SERVER['REQUEST_URI'];
在每个页面和登录页面我使用:
session_start();
if(isset($_SESSION['url']))
$url = $_SESSION['url']; // holds url for last page visited.
else
$url = "login-home.php"; // default page for
header("Location: $url");
但是使用它,每个用户都被引导到同一页面。。。。。第一个用户上次访问的页面。。。。。。但我想引导每个用户到他们自己的最后一次访问页面。。。我的代码出了什么问题。请帮忙。
在他注销之前,您是否将$_SESSION['url']
以及其他用户详细信息存储在数据库中?当用户登录时,从数据库中检索该URL(基于用户ID或用户名)并将其重定向到那里。在这种特殊情况下,我认为没有必要使用$_SESSION。
$_SESSION不是你的答案,因为它不会神奇地将访问页面的用户绑定到注册用户(其凭据存储在数据库中)。
我从你的问题中了解到,你需要的是
被重定向到他注销前访问的最后一个页面在他的最后一次登录会话
不是他进入登录页面之前访问的最后一个页面(这里所有的答案都集中在这里),而是他上次登录时的前一个状态。你需要记住数据库中的状态。
会话和用户身份验证是两件非常不同的事情。
是否可以将当前url添加到登录表单中。在隐藏字段中。当用户登录时,使用POST或GET数据将用户重定向回其原始位置。
session_start();
if(isset($_SESSION['url']))
$url = $_SERVER['HTTP_REFERER'];
else
$url = "login-home.php"; // default page for
header("Location: $url");
对于上次访问的页面,您需要使用$_SERVER['HTTP_REFERER']