可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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 }