dongxie3963 2016-06-27 11:32
浏览 33

SESSION两个表用户和角色

I have two tables :

Users : 

 - id_user : int;
 - lastname : varchar(255):
 - firstname : varchar(255);
 - login : varchar(255);
 - password : varchar(255);
 - roles_id : int (foreign key);

Roles : 
 - id_roles : int;
 - name : varchar(255);

And i have some data :

Users : 
    1, lastname1, firstname1, login1, password1, 1
    2, lastname2, firstname2, login2, password2, 3
    3, lastname3, firstname3, login3, password3, 2

Roles : 
1, admin
2, moderator
3, user

and I have a menu :

session_start();

<li><a><i class="fa fa-cog"></i> configuration<span class="fa fa-chevron-down"></span></a>
                  <ul class="nav child_menu" style="display: none">
                     <?php if($_SESSION['Auth']['roles_id'] == 1){
                                ?>

                        <li><a href="#">add user</a></li>
                        <li><a href="#">List Users</a></li>
                                <?php  


                            }elseif($_SESSION['Auth']['roles_id'] == 2){
                                ?>

                        <li><a href="#">add Product</a></li>
                        <li><a href="#">List Product</a></li>

          <?php }
                            elseif($_SESSION['Auth']['roles_id'] == 3){
                                ?>
                        <li><a href="#">add input</a></li>       
                        <li><a href="#">List inputs</a></li>

<?php } ?>

     </ul>

</li>

I would like instead of roles_id in the condition, I can put the name of role.For example:

<?php if($_SESSION['Auth']['name'] == 'admin'){
                                ?>
And
<?php if($_SESSION['Auth']['name'] == 'moderator'){
                                ?>
and
<?php if($_SESSION['Auth']['name'] == 'user'){
                                ?>

And query save value name :

 extract($_POST);
     $password = sha1($password);
     $sql = "SELECT u.*, r.* FROM users as u INNER JOIN roles AS r ON r.id = u.roles_id WHERE login = '$login' AND password = '$password'";
     $req = $db->query($sql) 
    if($req ->rowCount()> 0){
        $data = $req->fetch(PDO::FETCH_ASSOC)) ;
        $_SESSION['Auth']= array(
            'login' => $login,
            'password' => $password,
            'roles_id' => $data['roles_id'],
            'lastname ' => $data['lastname'],
            'firstname' => $data['firstname'],
            'name' => $data['name'],

        );



}

but when i do session name :

$_SESSION['Auth']['name']

he gave me a warning: Undefined index name.

  • how to use name the role in session.
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 winform的chart曲线生成时有凸起
    • ¥15 msix packaging tool打包问题
    • ¥15 finalshell节点的搭建代码和那个端口代码教程
    • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
    • ¥15 Centos / PETSc / PETGEM
    • ¥15 centos7.9 IPv6端口telnet和端口监控问题
    • ¥120 计算机网络的新校区组网设计
    • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
    • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
    • ¥20 海浪数据 南海地区海况数据,波浪数据