伸出第二双眼睛。
我只是不知道这里的问题,我一直在整个网站使用相同的格式,直到现在我收到此错误:
<?php
session_start();
include"lib/config.php";
$logged_user = $_SESSION['username'];
$check_admin = "SELECT * FROM `members` WHERE `is_admin` = ".sql_val($logged_user);
$result = $conn->query($check_admin);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$members_id = $row['members_id'];
$is_admin = $row['is_admin'];
$is_mod = $row['is_mod'];
$username = $row['username'];
$password = $row['password'];
$email = $row['email'];
$login_date = $row['login_date'];
$login_time = $row['login_time'];
$session = $row['session'];
}}
?>
<?php
if ($is_admin == 1){
echo 'Is Admin';
}
else
{
echo 'Is not Admin';
}
?>
这是我的输出:
注意:未定义的变量:第30行的C:\ wwwroot \ htdocs \ snippet \ is_admin.php中的is_admin 不是管理员
哪个没有意义。
答案 0 :(得分:1)
您需要在文件顶部将$is_admin
定义为null
。因为如果您的if
条件不满足,那么您将无法在文件末尾获得$is_admin
。
像这样:
<?php
session_start();
include"lib/config.php";
$is_admin = "";
$logged_user = $_SESSION['username'];
$check_admin = "SELECT * FROM `members` WHERE `is_admin` = ".sql_val($logged_user);
$result = $conn->query($check_admin);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$members_id = $row['members_id'];
$is_admin = $row['is_admin'];
$is_mod = $row['is_mod'];
$username = $row['username'];
$password = $row['password'];
$email = $row['email'];
$login_date = $row['login_date'];
$login_time = $row['login_time'];
$session = $row['session'];
}}
?>
<?php
if ($is_admin == 1){
echo 'Is Admin';
}
else
{
echo 'Is not Admin';
}
?>
答案 1 :(得分:0)
检查是否$is_admin == 1
时,未定义变量$is_admin
。在您的代码中,这意味着......
您的SQL查询未返回任何行,因此永远不会迭代while
循环。你的桌子满了吗?你在查询正确的桌子吗?
$row
不包含$row['is_admin']
的值。你表中的那一栏是?对于此行,值是否为NULL?