我试图使用PHP和mysqli创建简单的登录表单,但它不起作用。 到目前为止,我创建了成功将数据发送到数据库的注册表,我还使用sha1加密了密码。 当我尝试使用下面附带的代码访问我之前存储的用户名和密码时,问题就开始了。 无论我提交什么,它显示为:错误的用户名或密码。 有人可以帮我吗?它花了我3天时间,仍然无法弄清楚如何使它工作。
<?php
include_once ('includes/connection.php');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login Form</title>
</head>
<body>
<?php
if(isset($_POST['submit_login'])) {
$username = $mysqli->real_escape_string($_POST['username']);
$password = sha1($_POST['password']);
$login_query = $mysqli->query("SELECT user_username, user_password FROM sd_users WHERE user_username = '$username' AND user_password = '$password'");
$count = $login_query->num_rows;
if ($count == 1) {
echo 'You are succesfully login!';
} else {
echo 'Wrong username or password';
}
}
?>
<div class="login-form">
<h3>LOGIN</h3>
<form action="index.php" method="post">
<p>Username:
<input type="text" name="username" value=""/>
</p>
<p>Psssword:
<input type="password" name="password" value=""/>
</p>
<input type="submit" name="submit_login" value="Login"/>
</form>
</div>
</body>
</html>
答案 0 :(得分:-2)
确保传递给MySQL查询的变量格式正确。要将PHP变量放入MySQL查询,请将其更改为:
$login_query = $mysqli->query("SELECT user_username, user_password FROM sd_users WHERE user_username = '".$username."' AND user_password = '".$password."'");
请注意我如何设置$username
和$password
变量。
我知道你来自哪里,因为我几个月前完成了使用PHP和MySQL创建安全登录系统的完全相同的过程。如果这不能完全回答这个问题,请告诉我。