dpt1712 2018-04-03 22:53
浏览 67
已采纳

PHP页面限制访问级别的访问

In MySQL table I have:

  1. ID
  2. username
  3. password
  4. level

level "admin" = access to all pages
level "user" = access only to certain pages


In auth.php page (which is included in every page).
session_start();
if(!isset($_SESSION["username"])){
    header("Location: login.php");
    exit(); 
}

In login page I have:

session_start();

// If form submitted, insert values into the database. 
if (isset($_POST['username'])) {

    $username = stripslashes($_REQUEST['username']); // removes backslashes
    $username = mysqli_real_escape_string($conn, $username); //escapes special characters in a string
    $password = stripslashes($_REQUEST['password']);
    $password = mysqli_real_escape_string($conn, $password);

    //Checking is user existing in the database or not
    $query = "SELECT * FROM `users` WHERE username='$username' and password='" . md5($password) . "'";
    $result = mysqli_query($conn, $query) or die(mysql_error());
    $rows = mysqli_num_rows($result);
    if ($rows == 1) {
        $_SESSION['username'] = $username;
        header("Location: index.php"); // Redirect user to index.php
    } else {
        header("Location: login.php"); // Redirect user to index.php;
    }
};

How should I make two sessions, session for "admin" and session for "user", so every page would have different access level?

  • 写回答

1条回答 默认 最新

  • dsfds2343 2018-04-03 23:20
    关注

    Try this!

      $query = "SELECT * FROM `users` WHERE username='$username' and password='".md5($password)."'";
    
        if ($result = $mysqli->query($con,$query)) {
    
    
            while ($row = $result->fetch_assoc()) {
             $_SESSION['username'] = $row["username"];
             $_SESSION['level'] = $row["level"]);
            }
    
            $result->free();
        }
    

    Aftert that when a page requires a certain level just verify if the level is right.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件
  • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
  • ¥30 线性代数的问题,我真的忘了线代的知识了
  • ¥15 有谁能够把华为matebook e 高通骁龙850刷成安卓系统,或者安装安卓系统