zend-framework – Zend Framework – Submit不包含Post Data

我的问题似乎与
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文件的内容:

[我删除了这些行,因为它是错误的文件,
我仍在寻找正确的.]

最佳答案 这个帖子很旧,但以下提示可能会帮助其他读者.我刚遇到这个问题,在这里找到了解决方案:

https://serverfault.com/questions/127674/mysteriously-empty-post-array

我刚刚建立了一个本地LAMP开发环境,并通过phpMyAdmin填充我的数据库,更改了php.ini的post_max_size指令以允许上传大型SQL转储.遗憾的是,我在INI文件中将1G错误输入为1GB. PHP将此解释为1字节限制,这自然是我的所有POST提交都超过了,因此它们作为空数组到达.

检查服务器的错误日志,查找类似于以下内容的内容:

[Sat Oct 01 17:08:07 2011] [error] [client 127.0.0.1] PHP Warning:  Unknown: POST Content-Length of 63 bytes exceeds the limit of 1 bytes in Unknown on line 0, referer: http://localhost/[...]
点赞