2017-10-13 67 views
-1

我有一个问题,试图让两个或更多用户访问管理页面。我试着添加一个||在它们之间,但它们对任何一个都不起作用。这个例子中的用户是xgrh和zeap。任何帮助将不胜感激不知道我做错了什么。我遇到问题让两个用户访问管理页面

<?php 
    session_start(); 

    if (!isset($_SESSION['uid']) || $_SESSION['lanId'] != 'xgrh'|| $_SESSION['lanId'] != 'zeap') { 
     header('refresh:2;url=http://a0319p528/dc399supplies/index.php'); 

     echo " 
     <div class='container'> 
      <div class='panel panel-danger'> 
       <div class='panel-heading'> <h3>Access Denied!! You will now be redirected back</h3></div> 
       <div class='panel-body'><img src='../admin.jpg'></div> 
      </div> 
     </div>";     
    } 
?> 
+0

更改||到&& ...但这对于更多的用户来说不会很灵活。您需要扩展它,并使用其他变量来确定它们是否有权访问。超出问题的范围。 – IncredibleHat

+0

适用于多个用户。请发布这个作为答案获得信用 – Donny

+0

其实我认为我错了。没有看到isset上的爆炸声。 – IncredibleHat

回答

1

根据您的示例代码,要检查如果用户没有登录,而不允许两者之一......这会工作:

if (!isset($_SESSION['uid']) or 
    ($_SESSION['lanId'] != 'xgrh' and $_SESSION['lanId'] != 'zeap')) 
{ 
    ... denied code ... 
} 

首先检查,如果没有一个是组。那么如果两个都不是合适的用户。

如果这两种情况中的任何一种都是真的(因此混合的'或'和'和'),则他们被拒绝访问。

你也可以做这样的:

if (!isset($_SESSION['uid']) or !in_array($_SESSION['lanId'],array('xgrh','zeap'))) 
{ 
    ... denied code ... 
}