2017-12-21 28 views
1

私はRest Apiを使用してMySQL DBに新しいレコードを作成しようとしています。ただし、$ dataに格納されているデータには、パラメータを使用して入力した値は含まれていません。データがMYSQL DBに投稿されていませんか?

エコー/プリントして何が含まれているかを確認しようとしましたが、何もありません。

URL:http://localhost/api/v1/test.php?firstname=Yacub?lastname=Ali。 私はデータを取得できますが、POSTはできません。

function insertQueue() 
{ 
    global $connection; 

    $data = json_decode(file_get_contents('php://input'), true); 
    echo $data; 
    var_dump($data); 
    $firstname = $data["userName"]; 
    $lastname  = $data["lastname"]; 
    $organization = $data["organization"]; 
    $type   = $data["type"]; 
    $service  = $data["service"]; 


    echo $query="INSERT INTO queue SET 
    firstname='".$firstname."', 
    lastname='".$lastname."', 
    organization='".$organization."', 
    type='".$type."', 
    service='".$service."'"; 

    if(mysqli_query($connection, $query)) 
    { 
     $response=array(
      'status' => 1, 
      'status_message' =>'Added to queue successfully.' 
     ); 
    } 
    else 
    { 
     $response=array(
      'status' => 0, 
      'status_message' =>'Queue Insertion has failed.' 
     ); 
    } 
    header('Content-Type: application/json'); 
    echo json_encode($response); 
} 
+3

痛いし。何か不快なSQLインジェクション攻撃の可能性があります:( – IncredibleHat

+0

'php:// input'が奇妙に見えます。有効なファイルパスではありません。 – halojoy

+2

@halojoy [** No!**](http://php.net/manual/en/wrappers。 php.php) –

答えて

4

以下は有効なURLではありません。あなたは両方を送信したい場合は、&を使用する必要があります。

http://localhost/api/v1/test.php?firstname=Yacub?lastname=Ali 

上記のための正しいものは次のとおりです。

http://localhost/api/v1/test.php?firstname=Yacub&lastname=Ali 

第二に、それはGETリクエストです。 POSTリクエストにはクエリ文字列は含まれません。

<form action="my.php" method="post"> 
<!--------------------^^^^^^^^^^^^^ 

代わりにこれを使用する::だからPOSTにご<form>の方法が変更

$data = json_decode(file_get_contents('php://input'), true); 

あなただけ使用することができます。

$data = $_POST; // After you convert the form method to POST. 
+0

こんにちは@Praveen Kumar、POSTリクエストを実行するためのフォームを使用していません。URLを使用してデータを挿入しようとしています。 –

+2

@ YacubAli次に、GETリクエストメイトです。 –

関連する問題