使用API​​网址时,PHP _POST ['字段']为空

时间:2016-09-14 06:35:04

标签: php rest api http post

我按照下面的在线教程来构建PHP API。

https://trinitytuts.com/restful-web-services-with-php-mysqli/

当我使用Chrome"高级休息客户端"时,HTTP请求可以正常运行。我收到以下回复:

{
"status": 1
"msg": "Your record inserted successfully"
}

enter image description here

我尝试将以下网址直接放入我的网络浏览器中:

http://localhost/API/insert.php/name=paul&email=paul@domain.com&status=active

我期望与使用Advanced Rest Client时收到的结果相同,但是我收到了以下错误:

Notice: Undefined index: name

我正在设置变量' name'使用以下PHP代码:

$name = $_POST['name'];

我的理解是,当我将URL粘贴到浏览器中时,$ name变量未设置为$ _POST [' name'],因为输入URL实际上不是后期操作。

我可以在URL中添加一个参数,以便告诉浏览器发帖吗?例如:

http://localhost/API/insert.php/type=POST&name=paul&email=paul@domain.com&status=active

简而言之,我希望能够将URL直接传递到Web浏览器中,而不必通过HTML表单发布。

这是我的insert.php的PHP代码

<?php
include 'conn.php';

$name = $_POST['name'];
$email = $_POST['email'];
$status = $_POST['status'];
$id = 1;

$sql = "INSERT INTO `service`.`user` (`id`, `name`, `email`, `status`) VALUES ($id, '$name', '$email', '$status');";

if ($connection->query($sql)) {
$msg = array("status" =>1 , "msg" => "Your record inserted successfully");
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($connection);
}

$json = $msg;

header('content-type: application/json');
echo json_encode($json);


@mysqli_close($conn);

?>

1 个答案:

答案 0 :(得分:-1)

Issue has been resolved by changing $_POST to $_GET in insert.php