仅限管理员限制页面

时间:2021-06-28 17:36:10

标签: php redirect admin roles

我已将尝试访问employee.php 的非管理员重定向到user.php,但是,管理员角色也被重定向到user.php。 注意:$_SESSION['ID'] 是在登录页面上创建来设置权限的。有两种类型的角色:管理员和用户。

        <?php

        if(!isset($_SESSION['ID']) &&( $_SESSION['ROLE'] != 'admin') )
        {
            header("Location:user.php"); //Do not allow him to access.
            exit;
        }

         session_start();
        if(!$_SESSION['username']){
            header("Location:login.php"); 
        }

        ?>

我也试过这个。

        <?php

        if(!isset($_SESSION['ID']) &&( $_SESSION['ROLE'] != 'admin') )
        {
            header("Location:user.php"); 
            exit;
        }
        else{
            header("Location:employee.php");
            exit;}

         session_start();
        if(!$_SESSION['username']){
            header("Location:login.php"); 
        }
       
        ?>

登录:code.php

        if(isset($_POST['login_btn']))
    {
        $email_login=$_POST['email'];
        $password_login=$_POST['password'];

    if (!empty($email_login) || !empty($password_login)) {
        $query="SELECT * FROM register WHERE email=? AND pwd=?";
            $stmt = $conn->prepare($query); 
            $stmt->bind_param("ss", $email_login,$password_login);
            $stmt->execute();
            $result = $stmt->get_result();  // get the mysqli result

            if($result->num_rows > 0){       
        $row = $result->fetch_assoc();  
                $_SESSION['ID'] = $row['id'];
                $_SESSION['ROLE'] = $row['usertype'];
                $_SESSION['username'] = $row['username'];
                
                if($_SESSION['ROLE'] == 'admin'){ 
                header("Location:index.php");
                die(); }
                else{ 
                    header("Location:user.php");
                    die(); }
                }
        else{
            $_SESSION['status']='Email ID or Password is incorrect';
            header("Location:login.php");
        }
    }    
        else
        {
            $_SESSION['status']='Email ID or Password is Insert';
            header("Location:login.php");
        }   
    }

不幸的是,结果是一样的。有什么解决办法吗?

0 个答案:

没有答案
相关问题