5

私はシステムに取り組んでおり、現在、別の (外部) システムがいくつかのデータに投稿できるスクリプトを実装して、それらを保存できるようにしようとしています。
外部システムを制御することはできません。外部システムをトリガーして、システムにデータを投稿し、スクリプトの URL を与えることができます。

投稿が発生したときに firebug を見ると、投稿されたデータが次のように表示されます。ここに画像の説明を入力

または (urldecoded)

content={"sex":"male","person":{"name":["chris"],"mbox":["mailto:name.lastename@gmail.com"]}}  
&Content-Type=application/json  
&auth=DDE233H76BGN

私の問題は、スクリプトでこれらのパラメーターを取得しようとすると、$_POST (および $_REQUEST) が常に空になることです! または
を試しましたが、コンテンツが表示されません。var_dump($_POST)echo file_get_contents("php://input");

ここで何が欠けていますか?
そこから何かを取得するために応答/要求ヘッダーが必要かどうかはわかりません。念のためここに示します
ここに画像の説明を入力

編集:
私のスクリプトは、次のような1行のコードで構成されています。

<?php
    var_dump($_POST);
?>

また

<?php
   echo file_get_contents("php://input");
?>

どちらも私には何も与えません:s

4

3 に答える 3

1

...を使用してデータにアクセスする必要があります$arr= json_decode($_POST['content']);が、ここで別の問題があります。

詳細がありません:

... 外部システムから Web サイトに送信された $_POST の内容を firebug で表示するにはどうすればよいでしょうか (別名: 要求はブラウザーを経由せず、おそらく外部サーバーから発信された CURL 要求を経由します)。明らかに、ここでは何も得られません。

私が見ているのは、あなたのウェブサイトによって作成された、ブラウザーから送信された (javascript の) POST 要求です。あなたの質問には重要な詳細が欠けています。それが何であるかわかりません。

ヒント:

echo 'test';var_dump の直前に配置してみてください。Firebug で見られる Ajax POST リクエストによって実際に呼び出されるページをデバッグしていない可能性があると感じています。少しルーティングの問題?

于 2013-05-18T04:52:02.327 に答える
0

RFC 1945 を見て、「パラメータ」とは何かを確認しましょう

parameter      = attribute "=" value
attribute      = token
token          = 1*<any CHAR except CTLs or tspecials>
CTL            = <any US-ASCII control character
                    (octets 0 - 31) and DEL (127)>

したがって、「-」はCTLではないため、「Content-Type = application/json」はPOSTの有効な部分ではないと思います

于 2012-11-22T20:38:02.903 に答える