[英]REST Webservice in PHP MySQL JSON - Inserting empty values to database
我正在Google Chrome上使用Advanced Rest Client
进行POST
请求。 一切正常,我什至收到消息User has been successfully registered!
但是在查看数据库时,我看到的是,尽管查询已成功发出,但attributes
viz firstname
, lastname
等的值只是空白。
怎么了 ?
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);
?>
将您的参数放入请求正文,而不是标题。 也许这是在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.