【问题标题】:PHP function to check whether a user is admin or notPHP函数检查用户是否为管理员
【发布时间】:2014-06-05 23:09:51
【问题描述】:

我需要一些花哨的代码来检查用户表中的用户是否将 adm 字段设置为 1(真)。我尝试阅读类似 Check user status, and then, if everything is alright, check if admin; with PHP (mysql database) 的其他帖子,但我无法理解/适应我的情况..

我有一个functions.php,其中存储了一些(哇)功能来确保登录安全(加密、反暴力破解、新登录、登录检查),我尝试制作一个adm_check函数:读入$ _SESSION 查找 id 并通过,然后选择 adm 字段,如果等于 1 则返回 true .. 这是代码

function adm_check($mysqli) {

    if(isset($_SESSION['user_id'], $_SESSION['username'])) {

         $user_id = $_SESSION['user_id'];

         $username = $_SESSION['username'];     

         $user_browser = $_SERVER['HTTP_USER_AGENT']; 

         if ($stmt = $mysqli->prepare("SELECT adm FROM members WHERE id = ? LIMIT 1")) { 

                $stmt->bind_param('i', $user_id); 

                $stmt->execute(); 

                $stmt->store_result();

            if($stmt->num_rows == 1) {

               if($adm==1){
                  return true;
               } 
           } 
        }
        return false;
    }
}

即使用户正确地将 adm 设置到成员表中,此函数也只会返回 false。我应该如何处理?我应该使用其他方法吗?

【问题讨论】:

  • 您从未设置过$adm。看起来你刚刚忘了打电话给$stmt->bind_result()

标签: php session mysqli


【解决方案1】:

您并没有直接获得 $adm。您永远不会将其分配给查询中的任何内容。这是一个解决方案。

    function adm_check($mysqli) {

    if(isset($_SESSION['user_id'], $_SESSION['username'])) {

        $user_id = $_SESSION['user_id'];

        $username = $_SESSION['username'];     

        $user_browser = $_SERVER['HTTP_USER_AGENT']; 

        if ($stmt = $mysqli->prepare("SELECT adm FROM members WHERE id = ? LIMIT 1")) { 

            $stmt->bind_param('i', $user_id); 

            $stmt->execute(); 

            $stmt->bind_result($adm);

            $stmt->fetch();

            if( $adm == 1 ) {
                return true;
            }
        } 
    }
    return false;
}

【讨论】:

  • 我没看到,谢谢指出。使用您的代码后它仍然无法正常工作,然后我意识到我忘记使用 session_start() ,其中包含我需要进行管理员检查的所有信息。
猜你喜欢
  • 1970-01-01
  • 2018-02-02
  • 2011-04-05
  • 2018-12-16
  • 2016-06-27
  • 1970-01-01
  • 1970-01-01
  • 2020-06-10
相关资源
最近更新 更多