相关疑难解决方法(0)

如何在登录后返回CakePHP中的referer页面

回到referer页面时遇到问题:

first url: http://site.com/venue/apartments/1564/venue-name
referer url: null
Run Code Online (Sandbox Code Playgroud)

在这个页面我可以编辑内部的东西,所以我有一个login按钮去登录页面,成功登录后,我想转回到first url.

second url: http://site.com/users/login
referer url: http://site.com/venue/apartments/1564/venue-name
Run Code Online (Sandbox Code Playgroud)

当我尝试登录时,由于CakePHP操作规则,我必须刷新登录页面以检查凭据,problem从这里开始:

third url: http://site.com/users/login
referer url: http://site.com/users/login
Run Code Online (Sandbox Code Playgroud)

通过刷新页面,并检查控制器的login操作中的凭据users我得到的是我之前的相同页面,现在我不能回到first url.

我通过在AppController中设置会话变量来尝试一些解决方案,该变量检查我是否不在login操作页面中并执行此操作:

AppController.php

public function beforeFilter () {
    $this->setRedirect();
}

public function setRedirect () {
    if ($this->request->params['controller'] != 'users' && $this->request->params['action'] != 'login') {
        $this->Session->write('redir', array('controller'=>$this->request->params['controller'], 'action'=>$this->request->params['action'], implode($this->request->params['pass'], '/')));
    }
}
Run Code Online (Sandbox Code Playgroud)

通过测试会话var,debug($this->Session->write('redir'));一切看起来都很完美,直到我开始login行动:

UsersController.php

public function login () {
    if …
Run Code Online (Sandbox Code Playgroud)

authentication cakephp login session-variables referrer

7
推荐指数
2
解决办法
2万
查看次数