【发布时间】:2016-02-13 12:22:08
【问题描述】:
我在 Google Chrome 上使用 Advanced Rest Client 来处理 POST 请求。
一切正常,我什至收到消息User has been successfully registered!,但在查看数据库时,我看到的是,attributes 即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);
?>
【问题讨论】:
-
我不知道“Advanced Rest Client”,但您似乎将数据作为标头发送。要通过
$_POSTsuperglobal 获取它们,您应该将它们作为(表单)数据与您的请求一起发送 -
是的!我想通了并修复了它。即使作为表单数据发送也会插入 EMPTY 值。我已经更新了截图。请看一看。
-
将生成的查询放入输出中并检查查询是否正确。