Javascript 有效的电子邮件仍然返回false
所以我试着检查一封电子邮件是否有效,我知道我只能用JS,但我更喜欢我的方式。这就是我要做的Javascript 有效的电子邮件仍然返回false,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,所以我试着检查一封电子邮件是否有效,我知道我只能用JS,但我更喜欢我的方式。这就是我要做的 //Get data if(isset($_POST['email'])){ $email = htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8') } else{ header('Location: /'); } if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ echo 1;
//Get data
if(isset($_POST['email'])){
$email = htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8')
}
else{
header('Location: /');
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
echo 1;
}
else{
echo 0;
}
还有我的JS
$(document).ready(function() {
//listens for typing on the desired field
$("#email").keyup(function() {
//gets the value of the field
var email = $("#email").val();
//here is where you send the desired data to the PHP file using ajax
$.post("../classes/validate.php", {email:email},
function(result) {
if(result == 1) {
//Email is valid
console.log("Good");
}
else {
//Email is invalid
console.log("Bad");
}
});
});
});
现在不管我输入什么,它总是返回
坏的。即使有一封有效的电子邮件。有什么想法吗?在验证之前,您不应该使用htmlspecialchars()。仅用于演示,即在以HTML格式输出电子邮件时。将电子邮件存储为变量后,您将丢失一个分号
//Get data
if(isset($_POST['email'])){
$email = htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8');
}
else{
header('Location: /');
}
if(filter_var($email, FILTER_VALIDATE_EMAIL)){
echo 1;
}
else{
echo 0;
}
在验证电子邮件地址之前,为什么要调用htmlspecialchars()
?您可能正在更改地址。因此,永远不要使用htmlspecialchars()
收集数据,而只能在显示时使用?不是真的!在清理/转义用户输入并将其存储到数据库之前,首先验证用户输入。