用户可以使用php中的会话访问管理页面

时间:2015-10-17 12:36:05

标签: php mysql session

我有一个包含表用户的数据库。在用户表上,我有一个有价值的用户名" 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。

3 个答案:

答案 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');
}