如何防止3位管理员以外的其他用户访问php中的网页?

时间:2018-09-19 09:06:50

标签: php

这是我要执行的代码:

<?php
    //To search three admin username and validate it.
    $q = "SELECT * FROM login_admin";
    $result = mysqli_query($mysqli,$q);
    // Loop for retrieveing username form database.
    while($row = mysqli_fetch_array($result)) {
    $u_user = $row["username"];
    echo $u_user;
    // to check if the session's username is same as username in database.
    if(($_SESSION['username']) != $u_user)
    {
    header('Location:logout.php');
    } 
    }
    ?>

我只是想防止其他用户访问直接在地址栏中输入网页的网页。其他用户拥有自己的用户名和密码。但是管理页面还可以识别用户的会话变量。

3 个答案:

答案 0 :(得分:0)

我个人会在登录时定义管理员设置。

赞:

$_SESSION['admin'] = true/false;

在您访问其中一个页面时,您可以阅读此会话并对其进行操作:

if( ! $_SESSION['admin']) // '!' means if $_SESSION['admin'] == false.
{ 
// redirect to some other page? 
};

文档:

答案 1 :(得分:0)

在用户数据库中定义用户类型,例如:1:管理员,2,主持人,3:用户 并在数据库或配置文件中或直接在该php文件中定义页面权限,但首先要检查用户类型是否对此php文件具有访问权限。

示例;

/*
* user database table example
* user types: 1: Admin, 2: Moderator, 3: User
*/
$user = ["id" => 1, "name" => "Musa ATALAY", "email" => "email@example.com", "type" => 1];

# example.php
<?php
    $pagePermissions = [1,2]; # only admins and moderators

    if(!in_array($user["type"], $pagePermissions)){
        exit("You dont have permissions to access this page!");
        # or
        header("Location: /403.html")
        # or whatever you want to do in this condition
    }

    # page codes
?>

答案 2 :(得分:0)

  1. 在用户表中添加一列user_level。
  2. 阻止除user_level之外的其他用户访问该页面是admin

    //编写查询以搜索活动用户级别 //然后检查用户级别是admin还是basic

    if($ row ['user_level']!='admin'){        回显“您不是访问此页面的授权用户”;     }