2016-09-14 2 views
-1

以下のオンラインチュートリアルに従って、PHP APIを作成しました。私は、Chromeの "高度な休息クライアント" を使用する場合APIのURLを使用すると、PHP _POST ['field']は空です

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

HTTPリクエストは完璧に動作します。私は、次の応答を取得:

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

enter image description here

私は私のウェブブラウザに直接以下のURLを入れてみました:

http://localhost/API/insert.php/name=paul&[email protected]&status=active 

私が使用したときに、私は私が受け取ったのと同じ結果を期待しましたしかし、Advanced Rest Clientでは、次のエラーが発生しました。

Notice: Undefined index: name 

私は、次のPHPコードを使用して変数「name」を設定しています:

$name = $_POST['name']; 

私の理解では、私がブラウザにURLを貼り付ける際には、$ name変数は、$ _POST [「名前」]に設定されていないということですURLを入力するのは実際にはポストアクションではないからです。

ブラウザに投稿するようにURLにパラメータを追加することはできますか?たとえば:

http://localhost/API/insert.php/type=POST&name=paul&[email protected]&status=active 

一言で言えば、私が直接WebブラウザとにURL過去のことができるようにし、HTMLフォーム経由でそれを投稿する必要はありませんしたいと思います。

insert.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を介して行われていない、の$ _GETがあるを変更することで解決されたためにこれは私のPHPコードです。 '$ _POST'を' $ _GET'に変更してください – ArtisticPhoenix

+0

localhost/API/insert.php?name=paul&[email protected]&status=active < - 気付く? URLとパラメータの間で – Michel

+0

を使用しますか? getのパラメータの始めには/ –

答えて

-1

問題がinsert.phpで$ _POSTと$ _GET

+0

ではなく、実際には?あなたはRETfulではない 'GET'で「投稿」したくない – Neat

+0

おっと.. Typo ..これは修正されました。 – cleverpaul

関連する問題