[英]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,您正在将mysqli
与mysql
函数类混合使用。 我认为这行不通...
它是这样工作的: 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.