编辑:自行解决。重新创建LoginController
并且问题消失了。感谢您的回复!
所以我对 Zend 还很陌生,所以也许我错过了一些非常简单的东西。场景非常简单。我有一个 Zend_Form on index
submit to /login
,我想在其中处理用户名和密码变量。我使用自定义装饰器来设置表单,生成的 HTML 如下所示:
<form id="loginForm" name="loginForm" enctype="application/x-www-form-urlencoded" method="post" action="/login">
<div class="input-container" id="username-container">
<input type="text" name="username" id="username" value="" helper="formText">
<div class="input-overlay">Username/Email</div>
</div>
<div class="input-container" id="password-container">
<input type="password" name="password" id="password" value="" helper="formPassword">
<div class="input-overlay">Password</div>
</div>
<div id="dropdown-checkbox-forgot-container">
<div class="checkbox-container" id="checkbox-container-rememberMe">
<input type="hidden" name="rememberMe" value="0">
<input type="checkbox" name="rememberMe" id="rememberMe" value="1" checked="checked" helper="formCheckbox" text="Remember me" class="light">
<div class="light checkbox-text" id="checkbox-text-rememberMe">Remember me</div>
</div>
<a href="/login/forgot" class="medium" id="dropdown-forgot-password">Forgot password?</a>
</div>
<input type="image" name="login" id="dropdown-login-submit" src="">
</form>
伟大的!让我们提交吧!我在我的 LoginController 中放了一个简单的内容var_dump
,以确认这些值已正确传输。 var_dump($this->getRequest()->getPost())
. FF 和 IE 都显示应有的值。但是,Chrome 和 Safari 不显示username
或password
输入。POST 数组中只有一个rememberMe
值。奇怪的...
现在我认为这可能是 Zend 对 POST 超全局的访问,所以我将代码更改为var_dump($_POST)
. 同样的问题。沮丧中,我尝试var_dump
了 $_POST 和$this->getRequest()->getPost()
.... 并且它起作用了!?它转储了一份仅包含输入的副本和rememberMe
一份包含所有内容(包括在内)的副本。不知道为什么或如何工作。任何有关问题可能是什么的见解将不胜感激!username
password