在php 5.3.8中的filter_var

时间:2012-11-30 15:26:47

标签: php

我正在开发用户注册表单,并希望验证用户的电子邮件地址。 但是,我读过的所有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 个答案:

答案 0 :(得分:3)

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

这应该是

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

@jack只能使用

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

empty()隐式isset()

答案 1 :(得分:2)

$email = isset($_POST['email']) ? $_POST['email'] : "";
echo(filter_var($email,FILTER_VALIDATE_EMAIL) ? "valid email" : "invalid email");

答案 2 :(得分:0)

  if(isset($_POST['email'])== true && empty($_POST['email'])false)
                           ^^^^^^^--redundant               ^^^^^---typo?

答案 3 :(得分:0)

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

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

bug可能与您的问题有关。