how efficently may i use filter_var($email, FILTER_VALIDATE_EMAIL).?

匿名 (未验证) 提交于 2019-12-03 09:14:57

问题:

I have tried out some code below but one major thing i missed out is email validation...but now i am trying to add filter_var($email, FILTER_VALIDATE_EMAIL) in my code..but confused where to include it in my code.

Please may I know how and were can I add email validation in my code.

please help me out and i beg you pardon i am wrong. here goes the /*.php*/ code

<?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); } ?> 

回答1:

filter_var filters a variable with a specified filter. This is how it works:

$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"); } 

Now, your code should be like this:

<?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);     } ?> 

Sidenote: Apart from email address you should validate and sanitize all your input fields. See this answer



回答2:

you can do like this :

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


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!