嗨,我正在尝试验证注册表单中的电子邮件地址。我想检查该地址是否存在于数据库中;
我有以下功能:
function validateEmailRepeat(){
// check if email exists in the database;
var emailVal = $('#email').val();
// assuming this is a input text field
$.post('check_email.php', {'email' : emailVal}, function(data) {
if(data==1)
{
email.addClass("error");
emailInfo.text("Adress exists");
emailInfo.addClass("error");
dataExist=1;
}
else {
email.removeClass("error");
emailInfo.text("Valid adress");
emailInfo.removeClass("error");
dataExist=0;
}
});
if(dataExist==1)
return false;
else
return true;
}
check_email.php 看起来像这样:
require_once('db.php');
if (isset($_POST['email'])){
$email=mysqli_real_escape_string($con,$_POST['email']);
$sql = "SELECT * FROM users WHERE `username`='".$email."'";
$select=mysqli_query($con,$sql) or die("fail");
$row = mysqli_num_rows($select);
if ($row >0) {
echo 1;
}else echo 0 ;
}
else
echo "post error";
我是新手。所以不要太强硬。提前致谢。
乐:对不起!我忘记了问题......问题是如果我在函数形式 $.post 之外定义 var dataExist 并且如果我让它像现在在函数中一样,我的函数将返回 true 我得到“dataExist is not defined”错误和返回真
Le:PHP 以我想要的方式返回预期的 1 和 0..
LE:似乎定义了
变量数据存在=0;
函数外validateEmailRepeat()
解决了这个问题。
如果有另一种更优雅的方式,请告诉我,因为这对我来说似乎有点愚蠢。