Magento getPost为空数组

时间:2013-11-05 23:27:38

标签: magento http-post

我有以下代码(请原谅不良编码,就像调试一样):

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

如您所见,我只是想获取HTTP POST值。

以下是该方案:

  1. 从HTTP POST模拟器,数据通过
  2. 来自Shopify webhook,没有任何结果(只是“数组()”)
  3. Shopify发布到PostCatcher显示了大量数据
  4. Shopify以JSON格式发布。

    关于我无法捕获POST阵列的任何想法?

3 个答案:

答案 0 :(得分:4)

使用简单的JSON$_POST,您无法获得Mage::app()->getRequest()->getPost();发布值。试试吧,

$value = json_decode(file_get_contents('php://input'));
print_r($value);

答案 1 :(得分:3)

在我的一个项目中,我得到了同样的错误

Mage::app()->getRequest()->getPost();给出了空白值。

我在提交表单时使用了一个扩展名,但制造商有一个描述字段。

如果文本内容类似来自选择或某些类似于SQL命令的内容。 它没有发布表单数据。

原因是托管服务提供商有一些设置来清理数据以防止SQL注入。

我将票证提交给托管服务提供商,问题解决了。

在此之前,我尝试了许多不需要的编码。

答案 2 :(得分:1)

基本上 如果您在控制器中,Mage::app()->getRequest()->getPost();$this->getRequest()->getPost();是相同的 它们与$_POST也是一样的,对值有一些额外的过滤 因此,如果在任何情况下都收到一个空数组,则应该为所有情况收到一个空数组 确保数据通过POST发送 还试着看看$this->getRequest()->getParams()的样子。也许Magento认为参数是通过_GET

发送的