我按照下面的在线教程来构建PHP API。
https://trinitytuts.com/restful-web-services-with-php-mysqli/
当我使用Chrome"高级休息客户端"时,HTTP请求可以正常运行。我收到以下回复:
{
"status": 1
"msg": "Your record inserted successfully"
}
我尝试将以下网址直接放入我的网络浏览器中:
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);
?>
答案 0 :(得分:-1)
Issue has been resolved by changing $_POST to $_GET in insert.php