微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP和Java电子邮件验证“ @”符号

尝试获取代码搜索键入的电子邮件地址中是否存在“ @”符号,如果没有则回显.无需搜索@代码,一切正常.

check.PHP

<?PHP
include '/connect.PHP'; //connects to MysqL

$email = MysqLi_real_escape_string($connect, $_POST['email']);

$check = MysqLi_query($connect, "SELECT email FROM users WHERE email='$email'");
$check_num_rows = MysqLi_num_rows($check);

if ($email==NULL) {
    echo 'Enter an email';
} elseif (strlen($email)<6) {
    echo 'Please enter a valid email';
} elseif (str($email).indexOf('@') == -1) {
    echo 'Please enter a valid email';
} else {
    if ($check_num_rows==0) {
        echo 'Email valid';
    } elseif ($check_num_rows==1) {
        echo 'Email already registered';
    }
}

register.PHP

<script type="text/javascript" src="/jquery-3.2.1.min.js"></script>

<script>
    $(document).ready(function() {
       $('#Feedback_email').load('/check.PHP').show();

       $('#email').keyup(function() {
           $.post('/check.PHP', { email: form.email.value }, 
           function(result) {
               $('#Feedback_email').html(result).show;
           });
       });
    });
</script>

<form action="register.PHP" method="post" name="form">

<input id="email" type="text" name="email" placeholder="Email Address" maxlength="60" value="<?PHP if (isset($trimmed['email'])) echo $trimmed['email']; ?>">

<div id="Feedback_email"></div>

<p><center><input type="submit" name="submit" value="Register"></center>
</form>

编辑:我确实有一个内置的筛选器,用于PHP后端验证.但是,我也尝试通过这些代码进行前端验证.如果有人知道如何修复我的脚本,请发布.我收到错误

Call to undefined function str() in /check.PHP on line 13

13号线

} elseif (str($email).indexOf('@') == -1) {

解决方法:

验证电子邮件的一种更好的方法是使用用于此类事情的内置过滤器

<?PHP

    include '/connect.PHP'; //connects to MysqL

    $email = MysqLi_real_escape_string($connect, $_POST['email']);

    $check = MysqLi_query($connect, "SELECT email FROM users WHERE email='$email'");
    $check_num_rows = MysqLi_num_rows($check);

    if ( filter_var($email, FILTER_VALIDATE_EMAIL) ) {
        if ($check_num_rows==0) {
            echo 'Email valid';
        } elseif ($check_num_rows==1) {
            echo 'Email already registered';
        }
    } else {
        echo 'Please enter a valid email';
    }
?>

您的代码不起作用的原因是,因为PHP没有str或indexOf方法,您应该使用诸如strpos之类的东西

if (strpos($email, '@') === false) { ...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐