管理员检查功能返回错误的结果

时间:2016-05-21 20:23:11

标签: php html if-statement

所以我正在开发一个街机脚本,我决定做的第一件事就是登录注册系统。无论如何,有2个注册页面。一个用于管理员,一个用于用户。管理员将隐藏用户的另一个目录(例如:admincp / signup.php)。因此,当您注册为用户时,女巫的工作完全没问题。获得的所有数据等。当您注册为用户时,它会将名为admin的数据库中的行设置为0.(管理员注册会将其设置为1)。

<?php 

    // Exeute the connection to the database
    require("common.php"); 

    // Is the user logged in?
    if(empty($_SESSION['user'])) 
    { 
        // If the are not lets send em away
        header("Location: login.php"); 

        // We MUST do this. Or else people can view this page without logging it
        die("Redirecting to login.php"); 
    } 
    function isAdmin($number)
    {
        if ($number = 0)
        {
            return false;
        }
        if ($number = 1)
        {
            return true;
        }
        if ($number > 1)
        {
            // adminTF is short for adminTrueFalse
            return "Invalid adminTF key";
        }
    }

?> 
Hello
<?php echo htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8'); ?>,
you have <?php echo htmlentities($_SESSION['user']['coins'], ENT_QUOTES, 'UTF-8'); ?>
 coins and you are <?php
                        if (isAdmin(0) == true)
                        {
                            echo "an admin.";
                        }
                        else
                        {
                            echo "not an admin.";
                        }
                    ?>
<br /> 
<a href="memberlist.php">Memberlist</a><br /> 
<a href="edit_account.php">Edit Account</a><br /> 
<a href="logout.php">Logout</a>

好的,所以当你阅读它时,你可以告诉它有一个功能,应该告诉我用户是否是管理员。因为我正在调试,我只想告诉我,我不是管理员。但即使我为所需的密钥插入零,它仍然告诉我我是一名管理员。即使它应该告诉我我不是一个(因为数字为零),它说“你是管理员。”

1 个答案:

答案 0 :(得分:3)

您正在使用=(赋值运算符)而不是==(比较)。