无法正确分配用户(管理员)来访问/访问管理page.php文件

问题描述 投票:0回答:2

当我在admin.php的使用它的代码只是不给我回音IM期待,而我有我的数据库中正确的值

我已经尝试在谷歌/计算器搜索,但找不到任何解决它只是不连接的权限。试图盈方把ISSET代码,但还没有工作了。

数据库:

用户名/密码/电子邮件/角色admin / test123 / @ html.com /管理

当记录(会议),它还是给了我基本上没有什么。

         <?php

  include_once 'includes/db_connect.php';
  include_once 'includes/functions.php';

  session_start();

  if ($stmt = $mysqli->prepare("SELECT id, username, password, salt, role
  FROM members
                          WHERE username = ? LIMIT 1")) {
 $stmt->bind_param('s', $username);  // Bind "$email" to parameter.
 $stmt->execute();    // Execute the prepared query.
 $stmt->store_result();

// get variables from result.
 $stmt->bind_result($user_id, $username, $db_password, $salt, $role);
 $stmt->fetch();

            $role = preg_replace("/[^a-zA-Z0-9_\-]+/", "", $role);

            $_SESSION['role'] = $role;
        }


     $role = "admin";

    if(isset($_SESSION['role'])) {
     if($_SESSION['role'] == $role) {
      echo "welcome adminisn";
         } else {
       echo ("Acces Denied");
      exit();
       }

             } else {
         echo "Session not set";
               }

它给了我访问被拒绝,而我在角色列有管理

php login admin
2个回答
0
投票

我想,为什么它不工作是因为你还没有分配$ _SESSION [“角色”]当用户登录,你没有一个语句来检查,如果没有指定它的值。

无论哪种方式,这个代码将工作:

    <?php
session_start(); // If we remove this then we get error Session not set

$role = "admin"; // If we change the role to something else we get access not granted


if(isset($_SESSION['role'])) {

  if($_SESSION['role'] == $role) {
    echo "Welcome admin";
  } else {
    echo("Access not granted");
    exit();
  }
} else {
  echo "Session not set!";

}

我们需要先初始化在session_start()。我手动分配的角色,但你应该把它从数据库中查询到检查,如果用户拥有管理员权限或没有。然后,我们将检查是否会话设置。如果没有,那么我们将显示消息会话未设置。

如果会话设置,我们需要比较用户角色的作用。如果匹配,我们得到一个问候欢迎管理员,如果角色是别的东西,我们得到消息访问不批。

我建议检查PHP手册一点看起来更进会议。这是很容易忘记的东西,然后整个事情是行不通的。至少,这是我以前的经验。


0
投票

资金使用的_SESSION!?

if(isset($_session['role'])) {

这是分配是否正确?什么是$role?如果$role设置为"admin",然后管理国防部的所有功能。对于所有其他值,它是为所有残疾。

$_SESSION['role'] = $role;
© www.soinside.com 2019 - 2024. All rights reserved.