登录后将不同的用户重定向到他们上次访问的网址在php中

时间:2012-03-07 11:00:14

标签: php

我有一个登录表单。我希望当用户在其帐户中登录时,他会被重定向到他访问的最后一页,然后在他最后一次登录的会话中登出。 我尝试使用

 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");

但是使用这个用户被引导到同一个页面.....页面第一个用户上次访问过......但我想将每个用户引导到他们自己最后访问过的页面...什么是我的code.please帮助错了。

3 个答案:

答案 0 :(得分:2)

您是否在注销之前将$_SESSION['url']与其他用户详细信息一起存储在数据库中?当用户登录时,从数据库中检索该URL(基于用户ID或用户名)并将其重定向到那里。我认为在这种特殊情况下不需要使用$ _SESSION。

$ _ SESSION不是您的答案,因为它不会将访问该页面的用户神奇地绑定到注册用户(其凭据存储在数据库中)。

据我所知,你需要的是

  

在注销之前被重定向到他访问过的最后一页   在他上次签约的会议中

不是他到达登录页面之前访问的最后一页(因为这里的所有答案都集中在这里),而是从他上次登录时的前一个状态开始。你需要记住数据库中的状态

会话和用户身份验证是两回事。

答案 1 :(得分:0)

是否可以将当前网址添加到登录表单中。在一个隐藏的领域。当用户登录时,使用该POST或GET数据将用户重定向回其原点。

答案 2 :(得分:-1)

session_start();    
if(isset($_SESSION['url'])) 
$url = $_SERVER['HTTP_REFERER']; 
else 
 $url = "login-home.php"; // default page for 

header("Location: $url");

对于访问的最后一页,您需要使用$ _SERVER ['HTTP_REFERER']