2017-06-02 95 views
-1

因此,我试图仅允许管理员(用户级别为1,默认为0)执行某些操作,但我的脚本无法识别何时用户是1级PHP脚本不会识别用户已登录并且是管理员

我登录1级的用户,但我得到一个错误,当用户好好尝试一下有1

<!-- This page allows admins (user level = 1) to post new jobs.--> 
<?php 
ob_start(); 
session_start(); 
require_once '../Database/Dbconnect.php'; 

// select loggedin users detail 
$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']); 
$userRow=mysql_fetch_array($res); 

if(!isset($_SESSION['user']) | $_SESSION['userLevel'] != 1) { 
    echo ' You do no have sufficient rights to access this page'; 
} 

else { 

    echo ' Please work away'; 
} 
a?> 

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Welcome - <?php echo $userRow['userEmail']; ?></title> 
    </head> 
</html> 

水平MY SQL用户表具有的以下列

姓氏 姓氏 userEmail 个为userpass 的UserLevel

+2

将'|'改为'||'。为什么每次都继续运行查询。将其存储在会话变量中。并在需要时在每页上调用'session_start()'。 – Akintunde007

+4

[**请不要在新代码中使用'mysql_ *'函数**](http://stackoverflow.com/q/12859942)。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。 请参阅[**红框**](http://php.net/mysql-connect)? 改为了解[*预准备语句*](http://en.wikipedia.org/wiki/Prepared_statement),并使用[PDO](http://php.net/pdo)或[MySQLi](http:///php.net/mysqli) - [这篇文章](http://php.net/manual/en/mysqlinfo.api.choosing.php)可以帮助你决定哪个。 – Qirel

+0

如果用户不被允许进入页面,那么你也应该'退出',这样他们就不能看到它的其余部分了。 – Qirel

回答

0

使用正确Logical operator

尝试这样的==>

if(!isset($_SESSION['user']) || $_SESSION['userLevel'] != 1) { 
    echo ' You do no have sufficient rights to access this page'; 
die; 
} 
+0

是的,我的错误。它仍然没有访问else语句 – Jack

0

你会用更好的OR,而不是| (应该是||反正);

不使用mysql_函数,

你也有 'A' 在你结束PHP标签的流浪。