检查mysql表上的值并选择设置为“1”的值

时间:2013-04-20 07:47:05

标签: php mysql

我全神贯注地看着。我无法弄清楚这一点。

<?php
session_start();
if (!empty($_POST[username]))
{
    require_once("connect.php");

    // Check if he has the right info.
    $query = mysql_query("SELECT * FROM members
                            WHERE username = '$_POST[username]'
                            AND password = '$_POST[password]'")
    or die ("Error - Couldn't login user.");

    $row = mysql_fetch_array($query)
    or die ("Error - Couldn't login user.");

    if (!empty($row[username])) // he got it.
    {
        $_SESSION[username] = $row[username];
        echo "Welcome $_POST[username]! You've been successfully logged in.";
        exit();
    }
    else // bad info.
    {
        echo "Error - Couldn't login user.<br /><br />
            Please try again.";
        exit();
    }

    if($isadmin["admin"]==1)
{
echo $admin;
}
else
{
}

}

$admin = <<<XYZ
<div id="admintab">
Admin &nbsp;&#0187;
<div id="admin">
ADMIN PANEL
<div id="exitadmin">
</div>
<div id="artistline" />
</div>
</div>
XYZ;

?>

我知道$admin值正在运行。我测试了它。基本上,我有一个注册系统。默认情况下,它将您的管理值设置为“0”。但是,假设我想添加一个管理员。我通过mysql将'0'更改为'1'。我想知道如何让php找到管理员值设置为'1'的用户,这些用户位于数据库中(行名称:admin),并仅向他们显示管理面板。

3 个答案:

答案 0 :(得分:1)

为什么使用

if($isadmin["admin"]==1)

你有

$row = mysql_fetch_array($query)

所以转换

if($isadmin["admin"]==1)

if($row["admin"]==1)

您应该在插入前检查值并选择数据并使用

mysql_real_escape_string($_POST['username'])

这样sql注入不适用

答案 1 :(得分:0)

首先,我有义务指出,由于SQL注入,不过滤$ _POST(以及$ _GET和$ _COOKIE等)是非常危险的。其次,在你定义之前,变量$ isadmin并不神奇地存在。

我建议设计一个功能更强大的用户组系统,但只是为了回答这个问题,你要检查的变量是$ row [“is_admin”],因为is_admin是表中的有效列。此外,您不需要执行if($ row [“is_admin”] == 1) - 1在PHP中求值为TRUE。

答案 2 :(得分:0)

您需要将if($isadmin["admin"]==1)更改为if($row['admin'] == 1) - 如果1和1,您可以省略== 1部分0是唯一的答案,因为1将始终为真,0将为假。

不可否认,我需要提一下,以明文形式在数据库中存储密码是一个坏主意,在存储它们之前至少应该对它们进行散列处理。在注册和登录阶段就像$password = hash('sha256', $salt.$_POST['password'])一样。

我还应该指出,你不应该使用查询将裸值输入到数据库中,如果你正在对它进行哈希处理,你不需要担心密码,但如果你不是,你需要密码无论如何要做用户名,否则任何人都可以在你的数据库中运行SQL查询:

$username = mysql_real_escape_string($_POST['username'])