我遵循以下在線教程來構建PHP API。當使用API url時,PHP _POST ['field']爲空
https://trinitytuts.com/restful-web-services-with-php-mysqli/
HTTP請求完美的作品時,我使用Chrome的 「高級REST客戶端」。我得到如下回應:
{
"status": 1
"msg": "Your record inserted successfully"
}
我試圖直接把下面網址進入我的網絡瀏覽器:
http://localhost/API/insert.php/name=paul&[email protected]&status=active
我預料的一樣的結果我收到的時候我用了但是,高級Rest客戶端收到以下錯誤:
Notice: Undefined index: name
我使用下面的PHP代碼設置變量「名」:
$name = $_POST['name'];
我的理解是,當我的URL粘貼到瀏覽器中,$ name變量沒有被設置爲$ _POST [「名稱」]因爲輸入網址實際上不是一個後操作。
我可以在URL中添加一個參數來告訴瀏覽器發佈嗎?例如:
http://localhost/API/insert.php/type=POST&name=paul&[email protected]&status=active
概括地說,我希望能夠給過去的網址直接進入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);
?>
後不通過瀏覽器的URL進行更改$ _ POST到$ _GET解決,$ _GET是。將'$ _POST'更改爲'$ _GET' – ArtisticPhoenix
localhost/API /insert.php?name=paul&[email protected]&status=active < - 注意?在url和參數 – Michel
之間使用?作爲獲取參數的開始,而不是/ –