【发布时间】:2020-03-18 15:32:07
【问题描述】:
作为一种做法,我创建了一个登录表单并将其与 MySQL 数据库链接,并尝试根据结果显示一个 toastr,即用户名和密码是否正确,因此当输入字段为空时显示错误烤面包机但是当我在字段中添加任何东西时它总是显示成功烤面包机我不知道如何解决这个问题
这是我的html代码
<form class="sing_in_form " method="POST" action="#">
<input id="email" type="text" name="username" placeholder="Email">
<input id="password" type="text" name="password" placeholder="password">
<!--log in button-->
<button type="submit" id="btn" name="submit " value="LOGIN" class="btn-login">Sign In</button>
<p class="sign_up">Don't have account? <a href="#">Sign up</a></p>
</form>
php
if(isset($_POST['username'])){ //username from the form
$uname=$_POST['username'];//username from the form
$pass_word=$_POST['password'];
$sql="SELECT * FROM `loginform2` WHERE user='".$uname."' And Pass='".$pass_word."' limit 1";
$result= $con->query($sql);
}
还有我的js代码
$(document).ready(function(){
$("#btn").click(function(){
var name = $("#email").val();
var password = $("#password").val();
// Returns successful data submission message when the entered information is stored in database.
var dataString = 'username='+ name + '&password='+ password;
if(name==''||password=='')
{
toastr.error("fill the feilds");
}
else
{
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "login(2).php",
data: dataString,
cache: false,
success: function(){
toastr.success("logged in");
}
});
}
return false;
});
});
【问题讨论】:
-
永远不要存储纯文本密码!请使用 PHP 的built-in functions 来处理密码安全问题。如果您使用的 PHP 版本低于 5.5,您可以使用
password_hash()compatibility pack。 在散列之前不需要escape passwords 或对它们使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。 -
@JayBlanchard 我明白了,但现在我只需要在检查密码和用户名是否正确后显示一个 toastr 的方法,你能指导我吗
-
您没有从 PHP 返回任何内容来指示登录成功或失败。 AJAX 总是成功的,因此总是会显示你的成功。
-
@JayBlanchard 我怎样才能从 php 返回 vlaues 并在 tha AJAX 中检查它们以显示正确的 toastr,他们有什么例子吗?