PHP / MySQL:登录表单不起作用

时间:2015-10-15 08:54:58

标签: php mysql login login-script

我有一个login.php文件,如下所示:

include "myfuncs.php";

$connect = dbConnection();

$username = $_POST["username"];
$passwort = md5($_POST["password"]);

$query = "SELECT username, password FROM user WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($query);
$row = mysql_fetch_object($result);

if($row->password == $passwort)
{
    echo "Hi $username";
    $_SESSION["username"] = $username;

    echo "Login successfully";
}
else
{
    echo "Login doesn't work";
}

和myfuncs.php文件,如下所示:

function dbConnection()
{
$servername = "...";
$username = "...";
$password = "...";
$dbname = "...";

$db_connect = new mysqli($servername, $username, $password, $dbname);

    if ($db_connect->connect_error) 
    {
        die("Connection failed: " . $db_connect->connect_error);
    }
    return $db_connect;
}

不幸的是,登录表单不起作用 - 即使用户名和密码与数据库条目匹配,它总是会出现错误“登录不起作用”。

3 个答案:

答案 0 :(得分:1)

Arg,您正在混合使用mysqlimysql函数。我认为它不起作用......

它以这种方式工作:PHP MySQLI

$stmt = $mysqli->prepare($query)

while ($stmt->fetch()) {
    (...)
}

答案 1 :(得分:0)

我在第6行看到你的变量名中有错误。 试试这个:

var operators = {
        '+': function (a, b) { return a + b; },
        '-': function (a, b) { return a - b; },
        '*': function (a, b) { return a * b; },
        '/': function (a, b) { return a / b; }
    },
    calculate = function (val1, val2, sign) {
        if (sign in operators) {
            return operators[sign](val1, val2);
        }
    }
document.write(calculate(6, 7, '*'));

答案 2 :(得分:0)

您的代码存在一些问题。在myfuncs.php中你使用mysqli,然后在你的代码中使用mysql(没有" i")。 mysql(没有" i")已被弃用,所以你应该在任何地方都使用mysqli。

更重要的是,在你的代码中你有:

$query = "SELECT username, password FROM user WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($query);
$row = mysql_fetch_object($result);

请参阅下两行的粗体文字(它应该是相同的变量):

$ ergebnis = mysql_query($ query);

$ row = mysql_fetch_object( $ result );

你应该

$result = mysql_query($query);

如果您将使用mysql。