我的问题似乎与On submit the form don't display its POST data及相关问题类似,但建议的解决方案不适用于我的项目,因此我目前不使用重定向。
我正在尝试学习Zend Framework。我正在处理的当前项目遇到了一个问题,即从我的表单传递的$ _POST和$ _GET超级全局变为空。我一直在努力简化问题,以确定它在哪里,但我似乎已经碰壁了。似乎根本没有发送POST数据......
我的观点:
<form method="post" action="/character/addsubmit">
<input type=hidden name='test' id='test' value='test'>
<input type='submit'>
</form>
我的控制器:
<?php
class CharacterController extends Zend_Controller_Action
{
public function addsubmitAction()
{
Zend_Debug::dump($this->getRequest());
echo "<br/>\$_POST: <br/>";
print_r($_POST);
echo "<br/>\$_GET: <br/>";
print_r($_GET);
echo "<br/><br/>";
if($this->_request->isPost()) {
echo "\$_POST Found<br/>";
}
else {
echo "\$_POST Not Found <br/>";
}
if ($this->_request->isGet()) {
echo "\$_GET Found<br/>";
}
else {
echo "\$_GET Not Found<br/>";
}
}
}
?>
通过导航到表单,然后提交(通过单击提交按钮),我收到以下输出:
object(Zend_Controller_Request_Http)#8 (15) {
["_paramSources:protected"] => array(2) {
[0] => string(4) "_GET"
[1] => string(5) "_POST"
}
["_requestUri:protected"] => string(20) "/character/addsubmit"
["_baseUrl:protected"] => string(0) ""
["_basePath:protected"] => NULL
["_pathInfo:protected"] => string(20) "/character/addsubmit"
["_params:protected"] => array(3) {
["controller"] => string(9) "character"
["action"] => string(9) "addsubmit"
["module"] => string(7) "default"
}
["_rawBody:protected"] => NULL
["_aliases:protected"] => array(0) {
}
["_dispatched:protected"] => bool(true)
["_module:protected"] => string(7) "default"
["_moduleKey:protected"] => string(6) "module"
["_controller:protected"] => string(9) "character"
["_controllerKey:protected"] => string(10) "controller"
["_action:protected"] => string(9) "addsubmit"
["_actionKey:protected"] => string(6) "action"
}
$_POST:
Array ( )
$_GET:
Array ( )
$_POST Not Found
$_GET Found
真正抛弃我循环的一件事是isGet函数返回true ..
对Zend有更多了解的人是否知道为什么我在使用此框架提交表单时遇到这么多麻烦?是否有一些我可能错过的配置或可能设置不正确的配置?
注意:我正在使用Zend_Form实际应用程序,以及使用更多的框架本身,但我在尝试调试此问题时已将其缩减。如果您需要有关我的配置的任何进一步信息,我将能够提供它。
谢谢!
编辑:
我的.htaccess文件的内容:
[我删除了这些行,因为它是错误的文件, 我仍在寻找正确的。]
答案 0 :(得分:2)
这个帖子很旧,但以下提示可能会帮助其他读者。我刚遇到这个问题,并在此处找到了解决方案:
https://serverfault.com/questions/127674/mysteriously-empty-post-array
我刚刚设置了一个本地LAMP开发环境,并通过phpMyAdmin填充我的数据库,更改了post_max_size
的{{1}}指令以允许上传大型SQL转储。遗憾的是,我在INI文件中将php.ini
错误地输入为1G
。 PHP将此解释为1字节限制,这自然导致我的所有POST提交都超过,因此它们作为空数组到达。
检查服务器的错误日志,查找类似以下内容的内容:
1GB
答案 1 :(得分:0)
你试过吗
$this->_request->getParams();