-1

如何检查“检查”php代码或页面中的权限?

我使用explode和in_array

用户登录并在“检查”页面后,代码必须检查用户是否具有“数据显示”权限..但是“检查”页面中的代码返回用户登录页面

“检查”页面代码有什么问题

这是我的数据库:

+--------------------+-------------------------------+
| username           |   user_privilege              |
|--------------------|-------------------------------|
| amal               |7gz,agt_courses,newbill        | 
|                    |                               |
+----------------------------------------------------+
|                    |                               |
| ahmed              |dataDisplay,previllige,newUsers|
+----------------------------------------------------+

第一页“登录”php:

<?php
ob_start();
session_start();
include '../connection/connect.php';

$username = $_POST['username'];
$password = $_POST['password'];


if($username && $password ){
    $finduser = mysqli_query($link,"SELECT * FROM LOGIN WHERE username = '".$username."' AND password = '".$password ."'") or die("error");
    if(mysqli_num_rows($finduser) !=0){
        while($row = mysqli_fetch_array($finduser)){
            $uname = $row['username'];
            $pass= $row['password '];
            $arr=explode(",",$row['user_privilege']);
        }
    }
        {
        $_SESSION['sessionname'] =$uname;
        $_SESSION['sessionpass'] =$password ;
        $_SESSION['sessionpre'] =$arr;
        header ("location:../agtSite/agt2.php");
    }
} 
ob_end_flush();
?>

第二页“检查”php:

<?php
session_start();

$_SESSION['sessionpre']='';
$haspermission = in_array("dataDisplay",$_SESSION['sessionpre']);

if($haspermission ){
    header("location: ../display/display.php");
}
?>
4

3 回答 3

1

在您的 check.php 脚本中,您正在清除 $_SESSION 中的“sessionpre”。

$_SESSION['sessionpre']='';

我认为应该删除该行。

于 2013-11-14T18:36:53.533 回答
0

您从 while 循环外部爆炸该行,尝试更改此:

$_SESSION['sessionpre'] =explode(",",$row['user_previllige']);

对此:

$_SESSION['sessionpre'] = $arr;
于 2013-11-14T18:29:36.690 回答
0

除了 David Jones 所说的 eploding 两次之外,您在检查之前清除 sessionpre 数据:

$_SESSION['sessionpre']='';
$haspermission = in_array("dataDisplay",$_SESSION['sessionpre']);

编辑:我看到taxicala 打败了我!

于 2013-11-14T18:39:15.720 回答