繁体   English   中英

PHP MySQL JSON中的REST Web服务-向数据库插入空值

[英]REST Webservice in PHP MySQL JSON - Inserting empty values to database

我正在Google Chrome上使用Advanced Rest Client进行POST请求。 一切正常,我什至收到消息User has been successfully registered! 但是在查看数据库时,我看到的是,尽管查询已成功发出,但attributes viz firstnamelastname等的值只是空白。
怎么了 ?

create.php

<?php

require_once 'connect.php';


if($_SERVER['REQUEST_METHOD'] == 'POST'){
// Get post data`
    $firstName = isset($_POST['firstname']) ? mysqli_real_escape_string($connection, $_POST['firstname']) : "";
    $lastName = isset($_POST['lastname']) ? mysqli_real_escape_string($connection, $_POST['lastname']) : "";
    $email = isset($_POST['email']) ? mysqli_real_escape_string($connection, $_POST['email']) : "";
    $password = isset($_POST['password']) ? sha1(md5(mysqli_real_escape_string($connection, $_POST['password']))) : "";
    $status = 0; // Here we set by default status In-active.
    // Save data into database
    $query = "INSERT INTO users (firstname,lastname,email,password,status) VALUES ('{$firstName}',
    '{$lastName}','{$email}','{$password}','{$status}')";

    $insert = mysqli_query($connection, $query);

    if($insert){
        $data = array("result" => 1, "message" => "User has been successfully registered!");
        } else {
        $data = array("result" => 0, "message" => "Error!");
    }
}
else {
    $data = array("result" => 0, "message" => "Incorrect Request Method!");
}

mysqli_close($connection);
/* JSON Response */
header('Content-type: application/json');
echo json_encode($data);
?>

REST客户端的屏幕截图 REST客户端的屏幕截图

数据库截图

将您的参数放入请求正文,而不是标题。 也许这是在HTTP客户端的“有效载荷”部分完成的? 另外,由于您将数据作为JSON发送,您是否需要对json_decode的POST数据进行json_decode

尝试通过转储$_POST数组中的空白值进行调试。

另外,您可能希望通过验证通过发送的数据来使后端更强大。 例如,不要为您收到的每个参数接受NULL值。

也许问题出在我的Advanced Rest Client我以application/json发送了payload ,但没有获取POST数据,而是将Content-Typ e更改为application/x-www-form-urlencoded ,一切正常!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM