JSONをPHPでPOST送信した際のSyntax errorについてご質問です。
$ary = [ 'function'=> 'login', 'open' => [ [ 'userID' => $_POST['userID'], 'password' => $_POST['password'] ] ] ]; $data = json_encode($ary); $url = 'http://example.com'; $header = ['Content-Type: application/json']; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => $data, CURLOPT_HTTPHEADER => $header, )); $result = curl_exec($curl); curl_close($curl);
補足:
$data = json_encode($ary); var_dump($data); exit;
上記の結果は、下記のように出ましたので、$_POST['userID'],$_POST['password']の値は取得できてました。
string(63) "{"function":"login","open":{"userID":"user","password":"pass"}}"
しかし、受信した側では、NULLではありませんでしたが、string(0) ""となりました。
※さくらサーバー置いてある、テストURLに送信しました。
$json_string = file_get_contents('php://input'); if ($json_string === NULL) { echo "NULL"; }else{ var_dump($json_string); }
結果:
string(0) ""
どうやら値が取れてないようです・・・
JSONの記述がおかしいのでしょうか?
教えてくださいm(_ _)m
開発環境:
PHP 7.1.16、vagrant(centOS7)
回答3件
あなたの回答
tips
プレビュー