代码之家  ›  专栏  ›  技术社区  ›  Taylor Satula

如何创建验证电子邮件地址的PHP web表单?

  •  1
  • Taylor Satula  · 技术社区  · 14 年前

    3 回复  |  直到 14 年前
        1
  •  0
  •   Community Neeleshkumar S    7 年前

    默认情况下,HTML表单接受按Enter键提交表单,因此不需要做任何额外的操作。

    filter_var 函数与 FILTER_VALIDATE_EMAIL 旗帜。

    <form method="post" action="yourfile.php">
        <input type="text" name="email" />
    </form>
    

    PHP文件:

    <?php
    $email = $_POST['email'];
    if(!filter_var($email, FILTER_VALIDATE_EMAIL))
    {
        // Email is invalid, do something
    }
    else
    {
       // Email is valid
    }
    ?>
    

    注意:根据这个问题中的原因,不要使用regex解析电子邮件地址- Using a regular expression to validate an email address

        2
  •  0
  •   Luke Stevenson    14 年前

    然而,这些规则实际上相当复杂。创建一个正则表达式来匹配100%的有效字符串,而匹配0%的无效字符串几乎是不可能的。

    也就是说一封电子邮件 joe@server.com 应该只有 服务器.com ".

    本邮件地址:12756@gmail.com ,这可能是一个潜在的有效地址,但这并不意味着它存在、处于活动状态或是我的地址。

    http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx

    为了处理电子邮件地址并检查其有效性,需要使用正则表达式执行非常基本的检查(简单到检查地址是否包含至少一个“@”符号,以及最右边“@”符号的右边是否包含至少一个“.”符号),然后向该地址发送一封电子邮件,其中包含一个链接,该链接将通过另一个表单(使用$GET参数)发回,以通知已通过指定的电子邮件成功接收邮件。

    1. 用户访问您的表单
    2. (可选)您的表单使用javascript对电子邮件地址执行快速检查,以确保模式/+\@.+..+/存在。
    3. 用户提交表单
    4. 然后,PHP表单处理程序(“脚本”)重新检查表单的内容,包括它使用的电子邮件地址 preg_match() 检查/+\@.++/
    5. PHP脚本将表单内容保存到表中,但将该表标记为“ "
    6. 然后,您的PHP脚本生成一封电子邮件,发送到指定的地址,其中包含指向站点上PHP脚本的链接(即 http://www.server.com/validate.php?entry=1
    7. 剧本在 看这是什么 $_GET['entry'] 参数,如果数据库表中有一行与该值匹配,则将其标记为“ "

    诚然,这是一个非常漫长而复杂的过程,但是,如果你想100%确定用户提交的电子邮件地址至少能够在表单提交时接收电子邮件,这是唯一的方法。

    还需要注意的是,有许多服务允许用户设置临时电子邮件地址,加上正常的电子邮件地址绝不是永久的,所以今天验证的地址明天可能不会这样做。

        3
  •  0
  •   Luke Stevenson    14 年前

    一个澄清的形式不是php实际上它实际上是html,它可以“去”一个php文件。

    <input type="submit" style="visibility:hidden">
    

    要验证电子邮件客户端(无需向服务器提交或以简单的英语返回),请执行以下操作:

    查看他的教程:

    http://tutorialblog.org/client-side-form-validation-with-jquery/

    http://www.w3schools.com/php/filter_validate_email.asp

    我也很简单你不必掌握任何语言。

    祝你好运