我有一个包含表用户的数据库。在用户表上,我有一个有价值的用户名" corny"和用户名=" admin"。
在我的user.php上我有这段代码
if(!isset($_SESSION['username'])){
header('location: index.php');
}
在我的admin.php上我有这个会话
if(!isset($_SESSION['username'])){
if($_SESSION['username'] != "gft-admin"){
header('location: index.php');
}
}
所以我的问题是来自users.php我可以访问admin.php。如果用户不等于' admin'我应该怎么做才能避免users.php访问admin.php。
答案 0 :(得分:0)
删除第二段代码中的!
,并在没有设置$_SESSION['username']
时添加else语句。
if(isset($_SESSION['username'])){ //remove here
if($_SESSION['username'] != "gft-admin"){
header('location: index.php');
}
} else {
header('location: index.php');
}
答案 1 :(得分:0)
这是因为当您已设置会话时,您完全绕过了管理if
阻止。我认为您只需删除!
标记。
答案 2 :(得分:0)
您目前的逻辑是:
IF there is no username
THEN if the username is not gft-admin
THEN REDIRECT
但你想说的是:
IF there is no username
OR if the username is not gft-admin
THEN redirect
你会表达如下:
if(!isset($_SESSION['username']) || $_SESSION['username'] != "gft-admin"){
header('location: index.php');
}