-1

我在网页上编码电子邮件地址验证时遇到问题。

第一步,检查输入是否像 someone@somewhere.tld 一样有效。但是第二次检查,如果电子邮件已经存在于数据库中,似乎根本不起作用。

我正在使用 jQuery 验证插件。

到目前为止,这是我的代码:

从 register.php 中提取:

<form action="addKunde.php" id="contact-form" method ="post" class="form-horizontal">
<div class="control-group">
    <label class="control-label" for="email">E-Mail-Addresse</label>
    <div class="controls">
    <input type="text" class="input-xlarge" name="email" id="email">
    </div>
</div>
<script src="js/jquery.min.js"></script>
<script src="js/jquery.validate.js"></script>
<script src="script.js"></script>

从 script.js 中提取:

$(document).ready(function(){
    $('#contact-form').validate({
    rules: {
            email: {
                maxlength: 100,
                required: true,
                email: true,
                remote: {
                    url : "check.php",
                    type : "post"
                }
            }
        },
        highlight: function(element) {
            $(element).closest('.control-group').removeClass('success').addClass('error');
        },
        success: function(element) {
            $(element).addClass('valid').closest('.control-group').removeClass('error').addClass('success');
        }
    });
});

从 check.php 中提取:

<?php
include('mysql.php');
$email = trim(strtolower($_POST['email']));
$email = mysqli_real_escape_string($con, $username);
$result = mysqli_query($con, "SELECT * FROM Kunde WHERE EMail = '$email' LIMIT 1;");
$num = mysqli_num_rows($result);
if($num == 0){
    echo "true";
} else {
    echo "E-Mail-Adresse schon registriert.";
}
mysqli_close($con);
?>

我已经搜索了几个小时,遵循各种不同的说明,甚至尝试使用 jQuery-Validation 的 addMethod 实现自己的验证方法。

我希望有一个人可以帮助我。

非常感谢!

4

2 回答 2

0

也许是字符串“E-Mail-Adresse schon registriert”。正在为成功检查评估为真。您可以尝试将其更改为“假”,看看它是否有所作为?

于 2013-05-21T23:42:44.083 回答
0

我自己想通了:问题出在 check.php 中。而不是转换使用 post 请求发送的电子邮件地址

$email = trim(strtolower($_POST['email']));
$email = mysqli_real_escape_string($con, $username);

(我什至不记得我在哪里找到这段代码)无论如何,我将其替换为:

$email = urldecode($_POST['email']);

有用。也可以将自定义验证消息作为字符串返回。它必须放在转义引号中,以便 javascript 将其视为字符串:

echo "\"eMail-Address already registered.\"";

谢谢你的支持。

于 2013-05-22T12:56:25.117 回答