3

我正在开发一个用户注册表单并想要验证用户的电子邮件地址。但是,我读过的所有 php 文档都建议使用 filter_var。我的脚本将有效的电子邮件验证为无效。请发布一个工作脚本,或者指导我完成我的脚本。她的是我的剧本:

     <?php
      if(isset($_POST['email'])== true && empty($_POST['email'])false)
      {
       $email = $_POST['email'];
      }
      if(filter_var($email,FILTER_VALIDATE_EMAIL)) 
      {
       echo"valid email";
      }
      else
      {
      echo"invalid email";
      }
     ?>
4

4 回答 4

3
if(isset($_POST['email'])== true && empty($_POST['email'])false)

这应该是

if(isset($_POST['email']) && !empty($_POST['email']) )

或者作为@jack,您可以只使用

if (!empty($_POST['email']))

确实empty()隐含isset()

于 2012-11-30T15:28:40.803 回答
2
$email = isset($_POST['email']) ? $_POST['email'] : "";
echo(filter_var($email,FILTER_VALIDATE_EMAIL) ? "valid email" : "invalid email");
于 2012-11-30T15:31:55.453 回答
0
  if(isset($_POST['email'])== true && empty($_POST['email'])false)
                           ^^^^^^^--redundant               ^^^^^---typo?
于 2012-11-30T15:35:30.487 回答
0

在您的情况下,您不应该使用filter_var, 但是filter_input. 这是您需要的所有代码:

if ($email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL)) {
    // email was submitted and is a valid email
}

不过,此错误可能与您的问题有关。

于 2012-12-01T00:28:33.627 回答