用户/管理员在PHP中登录

时间:2015-01-06 11:40:01

标签: php login admin

我知道有类似的线程,我看过那些线程,虽然它们似乎都不适合我 首先,我想指出这是一个简单的大学作业,是一个真实的网站,我担心"安全& #34;或任何东西 其次,我的数据库由'username' 'password' and 'admin', admin being 0 or 1组成 如果admin值为1而不是0,我需要帮助的是让用户重定向到'hit-counter.php'
目前,无论管理员值如何,他们总是转到'index_loginsuccesful.php'。 (如果用户名/密码错误,则为'index_loginfailed.php') 有什么想法吗?

<?php
$conn = mysql_connect ("localhost", "root","");
mysql_select_db("a_blub",$conn);
$result=mysql_query("SELECT password FROM user WHERE username = '$_POST[theusername]'",$conn);
$rows=mysql_fetch_array($result);

if($_POST['thepassword'] == $rows[0])
{
    if ($_POST['admin'] == 1)
    Header("location:hit-counter.php");
    else
    Header("location:index_loginsuccesful.php");
}
else
{
    Header("location:index_loginfailed.php");
} ?>

2 个答案:

答案 0 :(得分:0)

如果要根据数据库中的数据重定向到不同的位置,则需要将1与从数据库中获取的数据进行比较,而不是{{1它将包含从表单提交的数据。您还需要选择包含该数据的列以及$_POST

答案 1 :(得分:0)

你可以尝试一下吗?

$conn = mysql_connect ("localhost", "root","");
mysql_select_db("a_blub",$conn);

$result = mysql_query("SELECT password FROM user WHERE username = '".mysql_real_escape_string($_POST['theusername'])."' LIMIT 1", $conn);

$row = mysql_fetch_assoc($result);

if ($_POST['thepassword'] == $row['password']) {
    if ($row['admin'] == 1) {
        header("Location: hit-counter.php");
        exit;
    } else {
        header("Location: index_loginsuccesful.php");
        exit;
    }
} else {
    header("Location: index_loginfailed.php");
    exit;
}