2015-10-17 51 views
0

我有一个数据库与表用户。在用户桌上,我有一个用户名值“corny”和用户名=“admin”。用户可以访问管理页面使用会话在php

我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我可以访问管理员。 PHP。如果用户不等于'admin',我应该怎么做以避免users.php访问admin.php。

回答

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

删除第二段代码中的!,并在没有$_SESSION['username']集时添加else语句。

if(isset($_SESSION['username'])){ //remove here 
    if($_SESSION['username'] != "gft-admin"){ 
     header('location: index.php'); 
    } 
} else { 
    header('location: index.php'); 
} 
+0

还是一样,我可以访问当我尝试浏览器admin.php –

+0

@akirayuki更新了答案,用else语句再试一次。 – Thaillie

0

这是因为您完全绕过管理if区块已完成设置的会话。我认为你只需要删除!标记。

+0

仍然是我可以访问当我trype浏览器admin.php –

+0

@akirayuki尝试清除您的浏览器/会话缓存第一。 –