php - 单纯用户的登录控制和管理面板加密

标签 php mysql authentication

我正在开发一个具有两种类型用户的项目,即管理员和普通用户。现在我想确保单纯的用户在登录后无法通过输入 admin.php 或任何其他管理页面的 url 来访问管理页面。问题出在我的 login.php 代码上,因为我允许他们都使用相同的代码登录页面标题。我有下面的 login.php,也许可以帮助我如何使用 if 语句来控制它或 session 。

        <?php 
        session_start();

        include_once("connect.php");

        $un = $_POST['un'];
        $pw = $_POST['pw'];

        mysql_select_db("pp",$con);

        $query = "SELECT * FROM user WHERE user_id='$un' AND password='$pw'";

        $result= mysql_query($query);

        if ($row = mysql_fetch_array($result))



        {

        if ($row['role']=="user") {

            $_SESSION['user_id']=$row['user_id'];
            $_SESSION['loggedIn']=1;
            header("Location: employee_home.php");


            }

        else { header("Location: admin.php");
        $_SESSION['loggedIn']=1;}   

        }

        else { header("Location: index.php?log=error"); 
        }

        ?>

最佳答案

您可以检查角色。

**Type**    **Role**
User 1    1(Users)
User 2    2(Admins)


    if ($row['role']==1) {
        $_SESSION['user_id']=$row['user_id'];
        $_SESSION['loggedIn']=1;
        header("Location: employee_home.php");
        }
    else if($row['role']==2) { 
       header("Location: admin.php");
       $_SESSION['loggedIn']=1;}   
    }
    else { header("Location: index.php?log=error"); 
    }

在 admin.php 中,检查用户角色是否为 < 2,然后重定向到错误页面或访问被拒绝页面。

基本上,您还需要在 admin.php 中添加条件。

关于php - 单纯用户的登录控制和管理面板加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27224673/

相关文章:

mysql - 字符串列表之间的百分比匹配(多个交集)

mySQL 导入在 DECIMAL 上失败

authentication - Cypress :登录身份验证重定向到另一个域:解决方法?

php - 在析构函数方法中抛出异常

javascript - 重复元素的 onclick 事件仅适用于第一行

php - mySQL 缓存 - 内存还是硬盘?

linux - 登录 CLearOS webconfig 失败

php - 将 2 个关联数组合并为 1 个

PHP/MySQL 将相同的数据插入到两个表中

python - "An Existing Connection was Forcibly Closed by the Remote Host"为什么?我该如何解决?