【问题标题】:How can I validate emails in PHP? [duplicate]如何在 PHP 中验证电子邮件? [复制]
【发布时间】:2011-11-01 12:18:10
【问题描述】:

可能重复:
E-mail validation in php? please help

我有 Ajax 注册表单。该代码检查电子邮件是否存在于 mysql 中,如果存在,它会说“对不起,您的电子邮件存在” - 否则会将电子邮件插入 mySQL。

我如何检查他们是否插入了有效的电子邮件?就像一个规则 char@ext

<?php
$con = mysql_connect("localhost","user","pass");
mysql_select_db("mytable", $con);
if(isset($_GET['email'])){
    $e= $_GET['email'];
    $cc= mysql_real_escape_string($e);
    $r = mysql_query("SELECT * FROM `maillist` WHERE `email` = '".$cc."'");
        if (mysql_affected_rows()==0) {
            $r = mysql_query('INSERT INTO maillist (id, email) VALUES(NULL,"'.$cc.'")');
            echo $cc;
        } else {
            echo 'Your email already exists!';
        }   
}
mysql_close($con);
?>

【问题讨论】:

  • 已经有很多关于通过 PHP 验证电子邮件的问题。例如 this one.

标签: php validation email-validation


【解决方案1】:

您可以使用 PHP 过滤器:http://php.net/manual/en/filter.filters.validate.php

具体来说:FILTER_VALIDATE_EMAIL

if (filter_var('bob@example.com', FILTER_VALIDATE_EMAIL) === false) {
  //fake email
}

【讨论】:

  • 甜蜜。 PHP是惊人的。我必须在 VB 中的 ASP CLASSIC 中创建一个单独的函数,然后进行查找替换和检查。我认为 jQuery 验证会更好地确保只有电子邮件进入 PHP 脚本,但这对于安全性而言总是有好处的。特别是对于 GET 请求。谢谢。代表++
【解决方案2】:

您应该查阅validate filters 上的文档:

if (filter_var($someEmail, FILTER_VALIDATE_EMAIL)) {
    // ...
} 

【讨论】:

    猜你喜欢
    • 2011-01-15
    • 2011-08-16
    • 2011-03-30
    • 2011-06-21
    • 2011-04-06
    • 2014-06-07
    • 2017-01-06
    • 2017-10-30
    • 1970-01-01
    相关资源
    最近更新 更多