Php Zend framework\u重定向url保持不变
我试图用Zend框架重定向,但发生了一些我无法理解的非常奇怪的事情 首先,您位于Php Zend framework\u重定向url保持不变,php,zend-framework,Php,Zend Framework,我试图用Zend框架重定向,但发生了一些我无法理解的非常奇怪的事情 首先,您位于token.phtml,loginform操作如下所示: <?php print $this->url(array('controller' => 'login', 'action' => 'login'));?>" 但URL会像您登录的地方一样更改为URL。如果我在Firefox中查看页面源代码,它会显示登录页面的源代码 但是它确实会转到令牌.phtml,因为它输出,一切都很好。改变
token.phtml
,loginform
操作如下所示:
<?php print $this->url(array('controller' => 'login', 'action' => 'login'));?>"
但URL会像您登录的地方一样更改为URL。如果我在Firefox中查看页面源代码,它会显示登录页面的源代码
但是它确实会转到
令牌.phtml
,因为它输出
,一切都很好。改变你的方式:如果错误登录保持在同一页面,则显示消息错误,如果正确登录,则重定向到你想要的位置:
尝试更改动作控制器,以便:
public function loginAction()
{
$form = new Form_Login();
if ($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) {
//stuff check login
$loginResult = //call method check, if bad return message error
if (true === $loginResult) {
//login success redirect where you want
$this->_helper->redirector('index', 'index');
} else {
// auth failed
foreach ($loginResult as $field => $message) {
$form->getElement($field)->addError($message);
}
}
}
$this->view->form = $form;
}
尝试将表单操作保留为空,这样您将在操作中获得请求。在tokenAction中,检查用户是否存在以及所有这些内容,如果为true,则重定向到登录操作
$this->_helper->redirector->gotoRoute(
array(
// route like:
'controller' => 'login'
'action' => 'login'
),
'routenameifyouwant'
);
显然,jquerymobile导致了这个问题。
jquery mobile通过AJAX自动提交表单,如果我关闭AJAX,URL更改和源代码更改都正确。您好,欢迎使用StackOverflow。请您将loginAction()的部分或全部代码发布到IndexController.php中,这样我们就可以看到可能发生的情况了。我尝试过这样做,但现在url停留在token.phtml,源代码也来自token.phtml,但当发现用户时,html输出是login。下面的问题与此相同,现在,当找到一个用户时,url保持在token.phtml。源是相同的,但html输出不是
$this->_helper->redirector->gotoRoute(
array(
// route like:
'controller' => 'login'
'action' => 'login'
),
'routenameifyouwant'
);