如何在php中根据会话显示菜单?
我有两个表admin和superadmin。我有两个相同的登录页面 用户。我可以根据查询登录。我已经为两者创建了会话 用户。每个表都有列名roleID。超级管理员roleID是 1,管理员角色ID为2。下面是我的登录代码 创建会话。我使用了如何在php中根据会话显示菜单?,php,mysql,session,Php,Mysql,Session,我有两个表admin和superadmin。我有两个相同的登录页面 用户。我可以根据查询登录。我已经为两者创建了会话 用户。每个表都有列名roleID。超级管理员roleID是 1,管理员角色ID为2。下面是我的登录代码 创建会话。我使用了print\r,我的会话正在运行。下面是 我的登录页面代码 现在在home.php上,我有一些菜单要根据roleID显示 菜单代码 一般的
print\r
,我的会话正在运行。下面是
我的登录页面代码
现在在home.php上,我有一些菜单要根据roleID显示
菜单代码
一般的
正如您所看到的列表。我想要if$\u SESSION['role0']=$data['roleId']代码>在会话中,因此前4个列表将仅对他可见。
如果$\u会话['role1']=$data['roleId']代码>在会话中,所有列表的其余部分将显示给他。
怎样做请帮我做同样的事情。如果条件允许,我会使用
if{$\u请求($\u会话['role0']))
呼应"一些清单",;
}
如果我像这样使用if条件,则不会显示任何内容。会话数据存储在$\u请求中
$_SESSION['role0']=$data1['roleId'];
$_SESSION['role1']=$data1['roleId'];
“role0”和“role1”将具有相同的值。可以简化为:
$_SESSION['role']=$data1['roleId'];
然后使用:
if( $_SESSION['role'] === 1) {
echo 'admin role 1';
echo 'Show first half of menu';
} elseif ($_SESSION['role'] === 2) {
echo 'Show second half of menu';
} else {
echo 'Other or missing admin value. show no menu';
}
SQL注入可以按照当前编写的方式进行。准备好的声明将是下一步添加的一件好事 您的代码容易受到SQL注入攻击。您应该使用或准备语句,如中所述。if{$\u请求($\u会话['role0'])应该是if(isset($\u请求($\u会话['role0'])){
$_SESSION['role']=$data1['roleId'];
if( $_SESSION['role'] === 1) {
echo 'admin role 1';
echo 'Show first half of menu';
} elseif ($_SESSION['role'] === 2) {
echo 'Show second half of menu';
} else {
echo 'Other or missing admin value. show no menu';
}