json本体(つまりはフォームデータではなくではありません)を持つJSクライアントからPOSTリクエストを受け取り、.gigs(javascript)配列をファイル.passwordフィールドを確認した後。これは私が見つける何(Receive JSON POST with PHPに基づいて)すべての私のコードphp:POSTからjsonを受信してファイルに保存する
$json_params = file_get_contents("php://input");
if (strlen($json_params) > 0 && isValidJSON($json_params)){
/* json_decode(..., true) returns an 'array', not an 'object'
* Working combination: json_decode($json_params) WITH $inp->password
*/
$inp = json_decode($json_params);
} else {
echo "could not decode POST body";
return;
}
$password = $inp->password;
// echo $password;
if ($password == "****") {
$gigs = $inp['gigs'];
// WAS $res = file_put_contents('gigs.json', json_encode($gigs), TEXT_FILE);
$res = file_put_contents('gigs.json', json_encode($gigs));
if ($res > 0) {
echo "Success";
return;
} else {
if (!$res) {
http_response_code(500);
echo "file_put_contents error:".$res;
return;
} else {
http_response_code(500);
echo "Error: saved zero data!";
return;
}
}
}
else {
// http_response_code(403); // (2)
echo "Password invalid";
return;
}
であることは、私はif
文をコメントアウトしてコメント解除echo $password;
ならば、正しいパスワードが
- ということですコメント解除私がやりたい2行目、そして私は500を返し、エラーログは上記の行(1)の
Illegal string offset 'password'
を参照します。それがなければ、私は"Success"
(すべて同じパスワード)を返します。
何が起こっているのか、また、200,403、および500のエラーメッセージを安全に取得する方法についてはわかりません。
なぜあなたは 'php:// input'を読んでいるときに' POST request'と言うのですか?また、 '$ inp ="私は決して設定されていません "; - それは' null'が普通のためです。 –
これは私の言葉の乱用かもしれません。私はクライアントからajax POSTを送信しています。私はPHPを全く理解していないので、間違ったことをしている可能性があります。 –
さて、ほとんどのことが間違っています。 –