user5444025
user5444025

Reputation:

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

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

Upvotes: 1

Views: 133

Answers (2)

Rajdeep Paul
Rajdeep Paul

Reputation: 16963

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

$email = "[email protected]";

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

Upvotes: 0

Abhay
Abhay

Reputation: 6760

you can do like this :

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

Upvotes: 1

Related Questions