使用会话变量来区分网站用户的类型示例Admin或Member

时间:2014-05-31 13:37:29

标签: php mysql session

我想尝试区分使用我网站的用户是管理员还是会员。我有一个数据库,我有用户角色的表,例如userRole 1 = member和userRole2 = admin。我有这个代码获取该特定用户的userRoleID并将其存储在变量中:

$result = "SELECT userRoleID FROM tbl_users" or die("Error: " . mysqli_error($con));

                $res = $con->query($result);

                while($row = mysqli_fetch_array($res)) {
                    $UserRoleID = $row['userRoleID'];

                    $_SESSION['user_role'] = $UserRoleID;
                }

它正在成功运作。

正如您在代码的最后一行中所看到的那样,我试图将包含userID的变量存储在一个成功的会话变量中。

现在我试图在另一个php页面中使用该会话变量来决定向用户显示什么,即如果他是管理员,他会获得更多功能,如果他是一名成员,他就会减少。我有这段代码:

<?php

        if (!empty($_SESSION['user_role'] == '2')) 
        { ?>
        <li><a href='index.php'>Home</a></li>
        <li><a href='#'>About Us</a></li>
        <li><a href='#'>Contact Us</a></li>
        <li><a href='loginpage.php'>Login</a></li>

        <?php } else if ($_SESSION['user_role'] == '3') 
        { ?>
        <li><a href='index.php'>Home</a></li>
        <li><a href='#'>About Us</a></li>
        <li><a href='#'>Contact Us</a></li>
        <li><a href='loginpage.php'>Login</a></li>
        <li><a href='#'>Admin</a></li>


        <?php } ?>

正如您可以看到,在此代码中,它根据用户角色决定它向用户显示的菜单项。但它无法正常工作我收到了这些错误:

注意:未定义的变量:第7行的C:\ xampp \ htdocs \ WSSA1S1 \ new \ pagetemplateHEADER.php中的_SESSION

注意:未定义的变量:第14行的C:\ xampp \ htdocs \ WSSA1S1 \ new \ pagetemplateHEADER.php中的_SESSION

我认为这是因为php代码的开头没有session_start()但是当我插入session_start()时出现了这个错误:

注意:会话已经启动 - 忽略第4行的C:\ xampp \ htdocs \ WSSA1S1 \ new \ pagetemplateLOGINSEC.php中的session_start()

有人可以给我一些建议吗?

P.S我是PHP,MySql和stackoverflow的初学者,所以如果解决方案很简单,请放轻松。

1 个答案:

答案 0 :(得分:0)

to keep things simple,
I would suggest something like the following:

<?php

    if( (isset($_SESSION['user_role']) ) && (false != $_SESSION['user_role']) )
    {
        if( '2' == $_SESSION['user_role'] ) 
        { 
            echo "<li><a href='index.php'>Home</a></li>";
            echo "<li><a href='#'>About Us</a></li>";
            echo "<li><a href='#'>Contact Us</a></li>";
            echo "<li><a href='loginpage.php'>Login</a></li>";
        } 

        elseif ('3' == $_SESSION['user_role'] ) 
        { 
            echo "<li><a href='index.php'>Home</a></li>";
            echo "<li><a href='#'>About Us</a></li>";
            echo "<li><a href='#'>Contact Us</a></li>";
            echo "<li><a href='loginpage.php'>Login</a></li>";
            echo "<li><a href='#'>Admin</a></li>";
        } 

        else
        { // error condition
            // display details of invalid $_SESSION['user_role']
        }
    }

    else
    { // error condition
        // display details of missing or empty $_SESSION['user_role']
    }
?>