Php 变量转储($\u POST);为空,但不是var\u dump($\u POST);死亡

Php 变量转储($\u POST);为空,但不是var\u dump($\u POST);死亡,php,post,Php,Post,我在这个问题上发现了一些类似的话题,但我的案例中没有发现: 我通过表单发送了一些post数据,但$\u post数组始终为空(非空)。但当我在var\u dump($\u POST)之后添加“die;”或“exit;”时;我可以看到所有发送的数据 也许应该知道,这是在一个名为“onPreDispatch”的(shopware)插件中 感谢您的帮助您的(shopware)插件可能使用了输出缓冲。这意味着它将收集所有ECOE和打印,直到您调用ob_flush()打印所有缓冲区 函数,除其他外,在调用

我在这个问题上发现了一些类似的话题,但我的案例中没有发现:

我通过表单发送了一些post数据,但$\u post数组始终为空(非空)。但当我在var\u dump($\u POST)之后添加“die;”或“exit;”时;我可以看到所有发送的数据

也许应该知道,这是在一个名为“onPreDispatch”的(shopware)插件中

感谢您的帮助

您的(shopware)插件可能使用了输出缓冲。这意味着它将收集所有ECOE和打印,直到您调用ob_flush()打印所有缓冲区

函数,除其他外,在调用时还刷新缓冲区。
因此,如果在回显后执行ob_flush(),您应该会得到所需的结果。

问题在于重定向,它重置了post,尽管这是在我读取请求中的参数之后

我不知道,shopware将所需的数据(paymentID)保存在数据库中。因此,我将插件切换回“onPostDispatch”(这样,它将在所有其他操作后调用,其中一个操作将数据保存在db中)。现在我可以读取数据库并获得相同的数据,这最初是在post数组中

我试图成为“第一个”读这篇文章的人,但没能理解。现在我是最后一个读它的人了,它很好用


谢谢你的回答!这里的线索是“重定向”。

这是一个非常非常漫长的过程。我希望数组“为空(非空)”意味着
print\r($\u POST)
会导致
array()
,在这种情况下,它不是输出缓冲。没错,如果我var\u转储POST,我会得到“array(0){}”,这不是关于打印一些数据,我只需要POST的内容,我只能看到与死亡或退出相结合的页面。你是通过POST还是GET调用该页面?尝试使用$\u请求。我不重定向,但我操作请求参数,该参数在插件例程完成后调用另一个控制器和操作。shopware是基于zend构建的,所以在我的例程被处理后,我是如何调用另一个控制器的:$request->setParam('sTarget','checkout')$请求->设置控制器名称(“帐户”)$请求->设置操作名('savePayment')$请求->setActionName('savePayment')->setDispatched(false);我注意到,如果我取出这段代码,我会得到我的post数据,但是我与最初必须调用的下一个操作没有“连接”。有没有其他方法可以调用zend中另一个控制器的特定操作?