我正在製作一個小應用程序來獲取REST的掛件,並且在DELETE方法中遇到了一些麻煩。我以前從未使用過,所以我不確定它的行爲。使用PHP刪除HTTP方法與REST API使用PHP
無論如何,我跟着this tutorial去了解一些基礎知識。我修改了它,所以用戶可以提交數據並從MySQL數據庫查看,而不是使用預製數組。
我有3個文件:
server.php - 的 「API」,其確定所使用的方法和相應地動作
input.php - 顯示用戶輸入的數據的形式
viewinput.php - 顯示已輸入的輸入。
我想現在在viewinput.php上放置一個「刪除」按鈕,以便可以刪除一個條目。這是我的代碼,顯示輸入的信息。
while ($result = mysql_fetch_array($sql)){
?>
<tr><td><? echo $result['id']." "; ?></td><td><? echo $result['text']; ?></td>
<form method = "delete" >
<td><input type="submit" name="delete" value="delete"></input></td></tr>
<input type="hidden" name = "hidden_delete" value="<? echo $result['id']; ?>"></input>
</form>
<?
}
現在,在我的server.php文件(API),這是被稱爲其確定的方法和打破了URL到用於進一步處理的組件的非常第一功能。
public function serve() {
$uri = $_SERVER['REQUEST_URI'];
echo $method = $_SERVER['REQUEST_METHOD']; //GET and POST are displayed, DELETE isn't
$paths = explode('/', $this->paths($uri));
array_shift($paths); //
$resource = array_shift($paths);
當我按下刪除鍵,URL從
/rest/viewinput
去
/rest/viewinput?delete=delete&hiddendelete=3 //assuming I deleted the 3rd entry
據我瞭解,網址應該是/ REST/viewinput/3時,提交DELETE方法
在我的server.php文件中,當我回顯方法時,「DELETE」不會像顯示POST一樣顯示,並且GET方法。
我發現 this resource關於DELETE,並從我的理解一個標識符將通過URL傳遞,但應該有一些方法接收就像GET和POST(這意味着我的代碼應顯示DELETE時,我回聲的方法)。
你在運行什麼服務器 - 有時你需要在服務器上允許DELETE http動詞。 – Fenton
它是html 4.0規範的限制。你只是不能使用除GET和POST之外的東西。看到這個答案:http://stackoverflow.com/a/166501/1515540 – complex857
@索尼我在localhost – user1104854