【发布时间】:2021-11-08 16:02:19
【问题描述】:
在我的应用程序中,我有 4 个角色。根据角色,用户可以查看他们访问的不同页面。目前我正在维护 2 个不同的会话。 $_SESSION['user_id'] 和 $_SESSION['role_id']。
我的问题是,假设我们说role_id =1 是Admin,role_id=2 是Doctor。如果我以Admin 的身份退出此会话并以Doctor 的身份登录该站点。然后我点击web browser 中的返回按钮,它将重定向到Admin page。我不想redirect 到Admin page,只想留在同一页面。
在这里,我使用此代码进行重定向,但没有工作。
// redirect to main page according to the user role
if(isset($_SESSION['user_id']) && $_SESSION['role_id'] == 1){//admin
header("location: index-2.php");
exit;
}
if(isset($_SESSION['user_id']) && $_SESSION['role_id'] == 2){ // doctor
header("location: index.php");
exit;
}
if(isset($_SESSION['user_id']) && $_SESSION['role_id'] == 3){// lab
header("location: index-lab.php");
exit;
}
if(isset($_SESSION['user_id']) && $_SESSION['role_id'] == 4){// recep
header("location: index-recep.php");
exit;
}
我不知道我哪里出错了。有人可以帮助我。任何帮助都将受到高度赞赏。
【问题讨论】:
-
"然后我点击浏览器中的返回按钮,它会重定向到管理页面"当你点击返回时缓存被加载,这不是一个 php 问题,那是浏览器的工作原理
-
@Cid
$_SESSION['user_id']仍然存在。这就是为什么。 -
@Cid
$_SESSION['user_id']对于每个页面都是相同的,$_SESSION['role_id']对于角色是不同的