2

私は次のコードを持っています(悪いコーディングを許してください、デバッグするのはそのようなものです):

$postData = Mage::app()->getRequest()->getPost();
if(!$postData)
{
    $postData = $this->getRequest()->getPost(); 
}
if(!$postData)
{
    $postData = $_POST; 
}

ご覧のとおり、HTTP POST 値を取得しようとしているだけです。

シナリオは次のとおりです。

  1. HTTP POST シミュレーターから、データが送信されます。
  2. Shopify Webhook からは何も来ません (「Array()」のみ)。
  3. PostCatcher への Shopify の投稿で大量のデータが表示される

Shopify は JSON 形式で投稿しています。

POST配列をキャッチできないというアイデアはありますか?

4

3 に答える 3

4

単にorJSONを使用して投稿値を取得することはできません。これを試してみてください。$_POSTMage::app()->getRequest()->getPost();

$value = json_decode(file_get_contents('php://input'));
print_r($value);
于 2013-11-06T09:42:25.583 に答える
3

私のプロジェクトの1つで、同じエラーが発生しました

Mage::app()->getRequest()->getPost();空白の値を与えていました。

フォームを送信したときに、メーカーの説明フィールドが 1 つある拡張子を 1 つ使用していました。

fromのようなテキスト コンテンツが含まれていた場合は、 SQL コマンドに似たコンテンツを 選択します。フォームデータを投稿していませんでした。

その理由は、ホスティング プロバイダーには、SQL インジェクションを防ぐためにデータをサニタイズするための設定がいくつかあったためです。

ホスティング プロバイダーにチケットを提出したところ、問題は解決しました。

この前に、必要のない多くのコーディングを試しました。

于 2013-12-26T11:41:01.953 に答える
1

基本的 Mage::app()->getRequest()->getPost();に と$this->getRequest()->getPost();は、コントローラーにいる場合と同じです。
それらは$_POST、値にいくつかの追加のフィルタリングを加えたものでも同じです。
したがって、いずれの場合でも空の配列を受け取る場合は、すべてのケースで空の配列を受け取る必要があります。
データが POST 経由で送信されていることを確認します。
また、どのように見えるかを見てみてください$this->getRequest()->getParams()。たぶん、Magento はパラメータが送信されていると考えています_GET

于 2013-11-06T09:20:35.437 に答える