为什么我的电子邮件验证不起作用?

时间:2013-12-11 17:12:25

标签: jquery pdo jquery-validate

这是我的php:

header('Content-type: application/json');

try {
$conn = new PDO('mysql:host=localhost;dbname=grand_debrouillage', 'gd_user', 'gd_p455w0rd');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

if (!empty($_POST['email'])) {
    $stmt = $conn->prepare('SELECT id FROM users WHERE courriel = :courriel');
    $stmt->bindParam(':courriel', $_POST['email'], PDO::PARAM_INT); // <-- Automatically sanitized by PDO
    $stmt->execute();

    if ($stmt->rowCount() == 0) {
        echo json_encode(true);  //good to register
    }
    else {
        echo json_encode(false); //already registered
    }
}
else {
    echo json_encode(false); //invalid post var
}  

} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

这是我的js

    $('#form').validate({ // initialize the plugin
    rules: {
        prenom: {required:true},
        nom: {required:true},
        email: {
            required:true,
            email:true,
            remote: {
                type: 'POST',
                url:"email_check.php"
            }       
        },

    ...

2 个答案:

答案 0 :(得分:2)

很可能它在console.log($_POST);上失败,这几乎不是PHP代码。

检查 web-server 日志中的语法错误。

答案 1 :(得分:-1)

所以问题在于,当我设置规则时,我必须将遥控器放在双引号中。

                "remote": {
                type: 'POST',
                url: 'email_check.php',
                data: {
                    email: function() {
                        return $('#form :input[name="email"]').val();
                    }
                }                   
            }