gpt4 book ai didi

jQuery 远程验证

转载 作者:行者123 更新时间:2023-12-03 22:45:22 24 4
gpt4 key购买 nike

我在 jQuery 远程验证方面遇到问题。我正在检查电子邮件是否已注册,远程验证有效,但它仅显示值 - true 或 false,并且我无法提交表单。

jQuery 代码:

$("#form").validate({
rules: {
email: {
required: true,
email: true,
remote: "check-email.php"

}
}
});

check-mail.php 代码:

$email = trim(strtolower($_REQUEST['email']));


$checkemail = mysql_query("SELECT * FROM users WHERE email = '".$email."'");

if(mysql_num_rows($checkemail) == 1)
{
$valid = 'false';
}
else
{
$valid = 'true';
} //end of $checkemail if statemant


echo json_encode($valid);

最佳答案

$checkemail = mysql_query("SELECT * FROM users WHERE email = '".$email."'");  

永远不要永远永远这样做。这是asking for trouble :SQL 注入(inject)、随机错误(单引号在电子邮件地址中有效,顺便说一句)。

parameterized queries , 使用它们。虽然只是多了几行代码,但却是像谷仓门一样宽的安全漏洞和安全的数据库交互之间的区别。

if(mysql_num_rows($checkemail) == 1)
{
$valid = 'false';
}
else
{
$valid = 'true';
}

是一种非常冗长的表达方式

$valid = mysql_num_rows($checkemail) == 1;

根据文档,远程验证的响应是 JSON 编码的 bool 值,而不是 JSON 编码的字符串。

您有 "true""false",它将变为 "\"true\"""\通过 json_encode() 执行“false\””,这是错误的。实际的 truefalse 将变为 "true""false",这是正确的。

将响应内容类型设置为 JSON 也可能是一个好主意:

header('Content-type: application/json');

关于jQuery 远程验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5178012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com