【发布时间】:2015-03-29 01:22:19
【问题描述】:
我遇到了 PHP 问题,因为我正在尝试编写一个程序,将用户重定向回上一页 (membersOnly.php)。这是目前不适合我的代码。
$sess = $_SESSION['sess_username'];
if ($sess == "admin") {
return;
} else {
header("Location: membersOnly.php");
}
我的尝试是只允许用户“admin”进入 admin.php 页面。这段代码是首先要运行的。 $_SESSION['sess_username'] 变量在 login.php 中分配,代码如下:
session_start();
$_SESSION['sess_username'] = $_POST['user'];
header("Location: membersOnly.php");
现在我知道我正确设置了会话用户名,因为在我选择的任何页面中,我都可以使用 echo $_SESSION['sess_username'];并显示用户名。但是,如果他们的用户名不是管理员,我不确定当我尝试将用户发送回 membersOnly.php 时我做错了什么。目前,当我尝试访问该页面时,它拒绝任何用户访问,包括管理员。
[编辑:已解决] 我忘了添加 session_start();在页面顶部。
【问题讨论】:
-
好的,您似乎正在调用
return;,这很可能只是返回一个空页面。尝试将其更改为die('IM AN ADMIN');和die('IM NOT AN ADMIN');开始,看看你得到什么结果。 -
不,不是这样,但感谢@Danbopes的指针
-
“不是这样”是什么意思?你得到什么?显示的是
IM AN ADMIN还是IM NOT AN ADMIN? -
@Danbopes 当我说那不是它时,我说那不是问题所在。但是当我将 $sess == "admin" 更改为 $sess != "admin" 时,它确实显示 IM AN ADMIN,但页面上没有其他内容。我现在知道它不理解“管理员”是会话名称,但我不知道如何解决这个问题。
-
我删除了关于使用错误报告的评论;它被忽略了(两次)。如果您使用它,它会清楚地向您抛出会话未启动和未定义索引通知。
标签: php mysql session permissions