jQuery AJAX检查数据库中是否存在电子邮件不能正常工作

时间:2016-10-15 04:44:31

标签: javascript php jquery mysql ajax

我正在尝试使用jQuery,AJAX,PHP和MySQL来检查输入表单的电子邮件是否已存在于数据库中。 这是我目前的jQuery代码:

$.post('check-email.php', {'suEmail' : $suEmail}, function(data) {
  if(data=='exists') {
    validForm = false;
    $suRememberMeCheckbox.css('top', '70px');
    $suRememberMeText.css('top', '68px');
    $signUpSubmit.css('top', '102px');
    $tosppText.css('top', '115px');
    $suBox.css('height', '405px');
    $suBox.css('top', '36%');
    $errorText.text('The email has been taken.');
    return false;
  };
});

这是我的PHP代码:

<?php include("dbconnect.php") ?>
  <?php
    $sql = "SELECT email FROM users WHERE email = " .$_POST['suEmail'];
    $select = mysqli_query($connection, $sql);
    $row = mysqli_fetch_assoc($select);

    if (mysqli_num_rows($row) > 0) {
      echo "exists";
    }
?>

当我使用注册表单时,当我使用数据库中已有的电子邮件时,错误文本永远不会更改为我指定的内容,而是更改为我编码的其他一些错误情况。为什么这不起作用!非常感谢!

2 个答案:

答案 0 :(得分:0)

    Use This Code: Working Perfectly:    

    <?php 
        include("dbconnect.php");

            $sql = "SELECT email FROM users WHERE email = '" .$_POST['suEmail']."' ";
            $select = mysqli_query($connection, $sql);
            $row = mysqli_fetch_assoc($select);

            if (mysqli_num_rows($select) > 0) {
              echo "exists";
            }
?>

答案 1 :(得分:0)

如果它没有改变,则表示您的查询可能有错误。检查网络下浏览器上的开发人员选项。在那里你可以看到所有的ajax调用。点击查看回复。检查您的查询是否有错误。

此外,您还必须验证表单提交。 像。的东西。

if($_SERVER['REQUEST_METHOD'] = 'POST')
{

//maybe send a token over with the form to prevent form spoofing 

 if($_POST['token'] === $_SESSION['token'])
 {
    // all your code goes in here
    // you provably want to check that is a real email also
      // check email input against regular expression

        if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
        {
            //if valid email to variable and escape data
            $e = sanitizeString($_POST['email']);
        }else 
            {
                /// if not a real email to errors array
                $reg_errors['email'] = 'Please enter a valid email address!';
            }

 }
}

您必须在查询中使用prepare语句。