繁体   English   中英

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

[英]PHP / MySQL: Login form doesn't work

我有一个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;
}

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

Arg,您正在将mysqlimysql函数类混合使用。 我认为这行不通...

它是这样工作的: PHP MySQLI

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

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

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

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

您的代码有几个问题。 在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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM