2016-09-14 75 views
-1

我遵循以下在線教程來構建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" 
} 

enter image description here

我試圖直接把下面網址進入我的網絡瀏覽器:

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); 

?> 
+1

後不通過瀏覽器的URL進行更改$ _ POST到$ _GET解決,$ _GET是。將'$ _POST'更改爲'$ _GET' – ArtisticPhoenix

+0

localhost/API /insert.php?name=paul&[email protected]&status=active < - 注意?在url和參數 – Michel

+0

之間使用?作爲獲取參數的開始,而不是/ –

回答

-1

問題一直在insert.php

+0

但它是真的嗎?,你不想用「GET」發佈,因爲這不是RESTful – Neat

+0

糟糕..錯字..現在已經修復。 – cleverpaul