【问题标题】:Validating email address in database验证数据库中的电子邮件地址
【发布时间】:2015-10-06 22:10:25
【问题描述】:

我正在为我的电子邮件字段创建一些客户端验证。检查电子邮件是否已存在于数据库中。然而,结果总是表明该电子邮件地址是否已经存在。

这是我的 JS

$(document).ready(function() {
    $("#email_address").blur(function() {
        var email = $("#email_address").val();
        $("#emailError").html('<img alt="" src="img/loading.gif"/>');
            $.post("check_username_new.php", {email:email},
            function(result) {
                if (result > 0) {
                    $("#emailError").html("Not Available");
                    console.log(result);
                }
                else {
                    $("#emailError").html("Available");
                    console.log(result);
                    }
                });
    });
});

PHP

<?php
  require('includes/application_top.php');

$email = mysql_real_escape_string(strtolower($_POST["email_address"]));
$sql = "SELECT count(*) FROM customers WHERE customers_email_address = '" . $email . "'";
$result = mysql_query($sql) or die("Error: " . mysql_error());

if(mysql_num_rows($result) > 0) {
    echo 1;
}
else {
    echo 0;
}

?>

据我所知,我的 jQuery 正在运行,并且似乎是 php.ini 的问题。我都没有遇到任何错误,所以我自然有点卡住了。

【问题讨论】:

  • 我确信它的功能不止于此,但我会更新 PHP 脚本以使用 $_GET['email_address'] 并在浏览器中自行测试。你还是黑屏吗?

标签: javascript php jquery


【解决方案1】:

我怀疑你应该这样做

count(*)

mysql_num_rows()

两者都不是。

count 可能更好,见SELECT COUNT() vs mysql_num_rows();

【讨论】:

    【解决方案2】:

    您正在使用COUNT,如果未找到数据和找到的记录数,它将返回0。在这两种情况下,资源中都会有一个row。所以mysql_num_rows 永远是1

    你应该这样做 -

    $result = mysql_query($sql) or die("Error: " . mysql_error());
    $data = mysql_fetch_assoc($result); // You can use any fetch method
    if($data['count(*)'] > 0) {
        echo 1;
    }
    else {
        echo 0;
    }
    

    mysql 已弃用。更喜欢使用 PDOmysqli

    【讨论】:

    • 我试过这个方法,是的,在我注意到我的查询总是返回 1 之前。现在返回为 0。但是我仍然遇到同样的问题。
    • 我的错。检查更新的答案。使用assoc 而不是object
    • 现在的结果正好相反,现在输入的每个值都返回不可用,这可能是我的 php 没有正确读取数据库的问题吗?
    猜你喜欢
    • 2014-06-12
    • 1970-01-01
    • 2018-03-13
    • 2011-09-02
    • 2013-02-20
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    相关资源
    最近更新 更多