Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么';sessionloginid中的代码有什么问题_Php_Mysqli - Fatal编程技术网

Php 什么';sessionloginid中的代码有什么问题

Php 什么';sessionloginid中的代码有什么问题,php,mysqli,Php,Mysqli,这是我第一次用php编写代码,我遵循教程。。我希望此代码选择特权表中的所有字段,并检查登录用户的id及其访问级别 但是访问级别并不会随着每个用户的登录而改变 我使用两个表之间的关系,它们是: 特权表 +----------------------------------+ | AccessLevel | logi_id | pre_id | |----------------------------------| | 1 | 1 | 1 | |

这是我第一次用php编写代码,我遵循教程。。我希望此代码选择特权表中的所有字段,并检查登录用户的id及其访问级别 但是访问级别并不会随着每个用户的登录而改变

我使用两个表之间的关系,它们是: 特权表

+----------------------------------+
|  AccessLevel | logi_id  | pre_id |
|----------------------------------|
|      1       |    1     |   1    |
|      2       |    1     |   2    | 
|      4       |    2     |   4    |
+----------------------------------+
这是登录预表:

+----------------------------------+
|  username| userpass | login_id   |
|----------------------------------|
|      a   |    123   |   1        |
|      a   |    123   |   1        | 
|      b   |   1234   |   2        |
+----------------------------------+
这是访问页面:

     <?php
        ob_start();
        session_start();
        include 'C:\xampp\htdocs\database\agtdatabase\agt_site\connection\connect.php';
        $query ="SELECT * FROM privilege " ;
        $result = mysqli_query($link,$query) or die('');

            while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
                    {
            $access = $row['AccessLevel'];

                echo $access; //result 124 in database

                        }

            if(isset($_SESSION['sessionloginid']))// point to id of user logged in
            {           
            echo $_SESSION['sessionaccess']=$access;// "that is print  wrong result " access level doesn't change based on user logged in 

            echo $_SESSION['sessionloginid'];

                    }

            ob_end_flush();
        ?>

您的查询需要修改。添加一个条件以检索与当前会话['sessionloginid']匹配的访问级别。试试这个:

<?php
      if(isset($_SESSION['sessionloginid']))// point to id of user logged in
        {  
        $query ="SELECT * FROM privilege where logi_id='".$_SESSION['sessionloginid']."'" ;
        $result = mysqli_query($link,$query) or die('');
        while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
                {
        $access = $row['AccessLevel'];

            echo $_SESSION['sessionaccess']=$access;
            echo $_SESSION['sessionloginid'];
                    }
                }

        ob_end_flush();
    ?>

因此,您希望检索登录用户的访问级别???。例如:登录id为
1
的用户应显示访问级别
12
。是这样吗?为什么不在查找用户名和密码时进行连接以获得结果权限?
<?php
      if(isset($_SESSION['sessionloginid']))// point to id of user logged in
        {  
        $query ="SELECT * FROM privilege where logi_id='".$_SESSION['sessionloginid']."'" ;
        $result = mysqli_query($link,$query) or die('');
        while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
                {
        $access = $row['AccessLevel'];

            echo $_SESSION['sessionaccess']=$access;
            echo $_SESSION['sessionloginid'];
                    }
                }

        ob_end_flush();
    ?>