【发布时间】: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()。