0

编辑:自行解决。重新创建LoginController并且问题消失了。感谢您的回复!

所以我对 Zend 还很陌生,所以也许我错过了一些非常简单的东西。场景非常简单。我有一个 Zend_Form on indexsubmit 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 不显示usernamepassword输入。POST 数组中只有一个rememberMe值。奇怪的...

现在我认为这可能是 Zend 对 POST 超全局的访问,所以我将代码更改为var_dump($_POST). 同样的问题。沮丧中,我尝试var_dump了 $_POST 和$this->getRequest()->getPost().... 并且它起作用了!?它转储了一份仅包含输入的副本和rememberMe一份包含所有内容(包括在内)的副本。不知道为什么或如何工作。任何有关问题可能是什么的见解将不胜感激!usernamepassword

4

1 回答 1

0

通过 ZendTool 重新创建了我的 LoginController 并按预期工作。

于 2013-02-05T00:34:55.567 回答