【问题标题】:how efficently may i use filter_var($email, FILTER_VALIDATE_EMAIL).?我使用 filter_var($email, FILTER_VALIDATE_EMAIL) 的效率如何?
【发布时间】:2016-03-11 17:58:25
【问题描述】:

我已经尝试了下面的一些代码,但我错过了一个主要的事情是电子邮件验证......但现在我试图在我的代码中添加 filter_var($email, FILTER_VALIDATE_EMAIL)..但混淆了在我的代码中包含它的位置。

请问我如何以及如何在我的代码中添加电子邮件验证。

请帮帮我,请原谅我错了。 这是/*.php*/ 代码

<?php
require_once 'DB_Functions.php';
$db = new DB_Functions();

// json response array
$response = array("error" => false);
if (!empty($_POST['fname']) && !empty($_POST['lname']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['mobile'])){
    // receiving the post params
    $fname = $_POST['fname'];
    $lname = $_POST['lname'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $mobile = $_POST['mobile'];

if ($db->isUserExisted($email)) {
        // user already existed
        $response["error"] = true;
        $response["error_msg"] = "User already existed with " . $email;
        echo json_encode($response);
    } else {
    // create a new user
    $user = $db->storeUser($fname, $lname, $email, $password, $mobile);
    if ($user) {
        // user stored successfully
        $response["error"] = false;
        $response["uid"] = $user["id"];
        $response["user"]["fname"] = $user["fname"];
        $response["user"]["lname"] = $user["lname"];
        $response["user"]["email"] = $user["email"];
        $response["user"]["created_at"] = $user["created_at"];
        $response["user"]["updated_at"] = $user["updated_at"];
        echo json_encode($response);
    } else {
        // user failed to store
        $response["error"] = true;
        $response["error_msg"] = "Unknown error occurred in registration!";
        echo json_encode($response);
    }
    }
} else {
    $response["error"] = true;
    $response["error_msg"] = "Required parameters are missing!";
    echo json_encode($response);
}
?>

【问题讨论】:

    标签: php email


    【解决方案1】:

    你可以这样做:

      if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
         if ($db->isUserExisted($email)) {
            //code goes here
         }
      } else {
             // msg displaying invalid email
      }
    

    【讨论】:

      【解决方案2】:

      filter_var 使用指定过滤器过滤变量。它是这样工作的:

      $email = "john@doe.com";
      
      if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
          echo("{$email} is a valid email address");
      } else {
          echo("{$email} is not a valid email address");
      }
      

      现在,您的代码应该是这样的:

      <?php
          require_once 'DB_Functions.php';
          $db = new DB_Functions();
      
          // json response array
          $response = array("error" => false);
          if (!empty($_POST['fname']) && !empty($_POST['lname']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['mobile'])){
              // receiving the post params
              $fname = trim($_POST['fname']);
              $lname = trim($_POST['lname']);
              $email = trim($_POST['email']);
              $password = $_POST['password'];
              $mobile = trim($_POST['mobile']);
      
              // validate your email address
              if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
                  // valid email address
                  if ($db->isUserExisted($email)) {
                      // user already existed
                      $response["error"] = true;
                      $response["error_msg"] = "User already existed with " . $email;
                      echo json_encode($response);
                  } else {
                      // create a new user
                      $user = $db->storeUser($fname, $lname, $email, $password, $mobile);
                      if ($user) {
                          // user stored successfully
                          $response["error"] = false;
                          $response["uid"] = $user["id"];
                          $response["user"]["fname"] = $user["fname"];
                          $response["user"]["lname"] = $user["lname"];
                          $response["user"]["email"] = $user["email"];
                          $response["user"]["created_at"] = $user["created_at"];
                          $response["user"]["updated_at"] = $user["updated_at"];
                          echo json_encode($response);
                      } else {
                          // user failed to store
                          $response["error"] = true;
                          $response["error_msg"] = "Unknown error occurred in registration!";
                          echo json_encode($response);
                      }
                  }
              } else {
                  // invalid email address
                  $response["error"] = true;
                  $response["error_msg"] = "invalid email address";
                  echo json_encode($response);
              }
          } else {
              $response["error"] = true;
              $response["error_msg"] = "Required parameters are missing!";
              echo json_encode($response);
          }
      ?>
      

      旁注:除了电子邮件地址之外,您还应该验证和清理所有输入字段。 See this answer

      【讨论】:

      • 先生绝对看不起实施..!!但是..首先感谢您的回应先生..!!
      • 现在看你的其他答案..!!并尝试实现它。!!
      • @krishna 当然,继续。很高兴我能帮助你。 :)
      • @krishna 在那里查看我的答案。
      • 先生 plzz...你能帮我解决一下我非常需要它,会话无法在实时服务器上运行-> stackoverflow.com/questions/34545184/…
      猜你喜欢
      • 2011-03-25
      • 2017-07-04
      • 2011-04-12
      • 1970-01-01
      • 2012-09-18
      • 2015-04-22
      • 2012-11-09
      • 2015-06-03
      • 2012-06-15
      相关资源
      最近更新 更多