我刚刚开始学习编程,而且我已经在这个问题上被困了几个小时。我有一个注册表单,要求发送电子邮件,如果电子邮件已经注册,它应该检查mysql数据库。我目前正在尝试使用Jquery验证器插件中的远程方法,但我似乎无法使其工作。
emailcheck.php
<?php
include_once 'dbconnect.php';
$email = $_POST['CusEadd'];
$query = "SELECT CusEadd FROM customer WHERE CusEadd='$email'";
$result = mysql_query($query);
$count = mysql_num_rows($result);
if($count>0){
echo json_encode(FALSE);
}
else {
echo json_encode(TRUE);
}
?>
形状validation.js
CusEadd: {
required:true,
email:true,
remote:"emailcheck.php"
}
答案 0 :(得分:1)
jQuery Validate的documentation表示
通过jQuery.ajax(XMLHttpRequest)调用serverside资源 获取与已验证的名称对应的键/值对 元素及其值为 GET 参数。
服务器端响应必须 是一个JSON字符串,必须是&#34; true&#34;对于有效的元素,可以 &#34; false&#34;,undefined,或null表示无效元素
您正在检查$_POST['CusEadd']
,并假设您有一个具有该名称的元素,您仍然必须指定POST作为方法
CusEadd: {
required:true,
email:true,
remote: {
url : "emailcheck.php",
type : "POST"
}
}
另外,你想要返回字符串&#34; true&#34;而不是PHP布尔值,它通常转换为数字
if($count>0){
echo json_encode("false");
}
else {
echo json_encode("true");
}
并且不要在生产代码中使用mysql_*
,只需将'OR 1=1
之类的内容传递给POST变量