未定义的变量

时间:2016-02-17 18:46:50

标签: php string variables

伸出第二双眼睛。

我只是不知道这里的问题,我一直在整个网站使用相同的格式,直到现在我收到此错误:

<?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 不是管理员

哪个没有意义。

2 个答案:

答案 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?