Javascript 验证该值是否不在数据库中

Javascript 验证该值是否不在数据库中,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我正在尝试验证输入的电子邮件地址是否不在我的数据库中。我有以下代码: 这是我的html表格 <form action="signup.php" method="post" onsubmit="return validateForm(this);"> <input type="text" name="First_name" placeholder="First Name" required pattern="[A-Za-z].{2,}" maxle

我正在尝试验证输入的电子邮件地址是否不在我的数据库中。我有以下代码:

这是我的html表格

<form action="signup.php" method="post" onsubmit="return validateForm(this);">
                <input type="text" name="First_name" placeholder="First Name" required pattern="[A-Za-z].{2,}" maxlength="20" oninvalid="this.setCustomValidity('Must be between 2 and 20 characters long and no numbers!')"/>
                <input type="text" name="Last_name" placeholder="Last Name" required pattern="[A-Za-z']..{2,}" maxlength="20" oninvalid="this.setCustomValidity('Must be between 2 and 20 characters long! and no numbers')"/>
                <input type="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" name="Email" required placeholder="Email Address" maxlength="30" oninvalid="this.setCustomValidity('Must be a validate Email Address!')"/>
                <input type="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" name="Email2" required placeholder="Comfirm Email Address" maxlength="30" oninvalid="this.setCustomValidity('Must be a validate Email Address!')"/>
                <input type="password" name="Password" placeholder="Password" required maxlength="20" required pattern=".{6,}" oninvalid="this.setCustomValidity('Must be between 6 and 20 characters long!')"/>
                <input type="Submit" value="Submit" name="Submit" id="Submit"/>
              </form>

下面是我在html顶部的jquery:

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
  //result texts
  var email_error = 'Emails do not match!';
  alert("Hi");
  //when button is clicked
  $('#Submit').click(function(){
    //run the character number check
    if($('#Email').val() != $('#Email2').val()){
      //if it's bellow the minimum show characters_error text '
      $('#emailValidate').html(email_error);
    }else{
      //else show the cheking_text and run the function to check
      check_availability();
    }
  });

});

//function to check username availability
function check_availability(){

    //get the username
    var Email = $('#Email').val();

    //use ajax to run the check
    $.post("checkmail.php", { Email: Email },
      function(result){
        //if the result is 1
        if(result == 1){
          //show that the username is available
          $('#emailValidate').html(Email + ' is Available');
        }else{
          //show that the username is NOT available
          $('#emailValidate').html(Email + ' is not Available');
        }
    });

}
</script>

$(文档).ready(函数(){
//结果文本
var email_error='电子邮件不匹配!';
警报(“Hi”);
//单击按钮时
$(“#提交”)。单击(函数(){
//运行字符号检查
如果($('#Email').val()!=$('#Email2').val()){
//如果低于最小显示字符数\u错误文本'
$('#emailValidate').html(电子邮件错误);
}否则{
//否则,显示cheking_文本并运行函数进行检查
检查可用性();
}
});
});
//用于检查用户名可用性的函数
功能检查_可用性(){
//获取用户名
var Email=$('#Email').val();
//使用ajax运行检查
$.post(“checkmail.php”,{Email:Email},
功能(结果){
//如果结果是1
如果(结果==1){
//显示用户名可用
$('#emailValidate').html(电子邮件+'可用);
}否则{
//显示用户名不可用
$('#emailValidate').html(电子邮件+'不可用);
}
});
}
这是我的php文件

<?php
$servername = "localhost";
$username = "root";
$password = "root";
$DB = "database";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $DB);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT Email FROM Users WHERE Email = '".$_POST['Email']."'";
$select = mysqli_query($conn, $sql);
$row = mysqli_num_rows($select);

if($row > 0)) {
  echo 1;
}else 
echo 0;
?>

您可以使SQL数据库列必须是uniqe。因此,SQL将为您完成这项工作,您只需提交表单即可。如果存在与提交的电子邮件匹配的电子邮件,SQL将抛出约束错误

我没有看到
validateForm()
函数。您也没有id。由于
电子邮件
是一个文本字段,您必须使用如下引号:
WHERE Email='“$\u POST['Email']。”;
,请注意,您的代码也可用于sql injection$.POST(“checkmail.php”,{Email:Email},电子邮件在哪里?
电子邮件从哪里来?
检查可用性
?电子邮件来自表单。我认为它可以从那里获取?验证表单来自我创建的另一个功能,我忘记了它在那里。这可能是问题吗?我已经有了,但我想允许用户只更改表单我会通过JavaScript/jQuery提交表单,如果有错误,你可以提醒用户并允许他们更改电子邮件。