如何在php中根据会话显示菜单?

如何在php中根据会话显示菜单?,php,mysql,session,Php,Mysql,Session,我有两个表admin和superadmin。我有两个相同的登录页面 用户。我可以根据查询登录。我已经为两者创建了会话 用户。每个表都有列名roleID。超级管理员roleID是 1,管理员角色ID为2。下面是我的登录代码 创建会话。我使用了print\r,我的会话正在运行。下面是 我的登录页面代码 现在在home.php上,我有一些菜单要根据roleID显示 菜单代码 一般的

我有两个表admin和superadmin。我有两个相同的登录页面 用户。我可以根据查询登录。我已经为两者创建了会话 用户。每个表都有列名roleID。超级管理员roleID是 1,管理员角色ID为2。下面是我的登录代码 创建会话。我使用了
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';
    }