空字段被带入数据库..!

时间:2015-12-07 05:04:23

标签: php database

以下是我为验证在字段中输入的数据而尝试的代码。即使我已经指定不应输入空字段,但在提交时数据将被输入数据库.. !!

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

// json response array
$response = array("error" => false);
if ((isset($_POST['fname']) || isset($_POST['lname']) || isset($_POST['email']) || isset($_POST['password']) || isset($_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 (fname, lname, email, password or mobile) is missing!";
    echo json_encode($response);
}
?>

1 个答案:

答案 0 :(得分:0)

isset函数仅检查是否设置了变量。反转empty将检查变量是否已设置且不为空。所以试试:

if (!empty($_POST['fname']) && !empty($_POST['lname']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['mobile'])){

链接:
http://php.net/manual/en/function.isset.php
http://php.net/manual/en/function.empty.php

另请注意,0被视为空。