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