我正在使用CakePHP 2.2.0,当用户没有登录时,点击链接时,它会进入登录页面,登录后我想重定向到点击的初始链接。有谁知道我们如何使用CakePHP实现它?我尝试使用$this->referer()
,但似乎没有获得以前访问过的网址。如果有人知道请帮我解决一下!
答案 0 :(得分:14)
如果您需要重定向到referer页面,您可以使用:
$this->redirect($this->referer());
参考:http://book.cakephp.org/2.0/en/controllers.html#flow-control
答案 1 :(得分:5)
在处理登录的方法中,您可以重定向到
$this->Auth->redirectUrl()
答案 2 :(得分:2)
这应该有效:
if ( $this->Auth->login() ) {
return $this->redirect( $this->Auth->redirect() );
}
来自doc:
上面的代码(没有任何数据传递给login方法),将会 尝试使用POST数据记录用户,如果成功 将用户重定向到他们访问的最后一页,或者 AuthComponent :: $ loginRedirect。如果登录失败,则闪烁 消息已设置。
答案 3 :(得分:0)
实际上,您可以在登录链接中添加一些back_url
,然后使用该值重定向用户。
这样的事情:
<?php
// log in link
echo $this->Html->link('Log In', '/login?back_url='.$_SERVER['REQUEST_URI']);
// log in action
$back_url = $this->request->query('back_url');
if($back_url === null) $back_url = '/';
// ... some other code
if($this->Auth->login()) {
$this->redirect($back_url);
}
?>
答案 4 :(得分:0)
if ($this->Auth->login()) {
$this->Session->write('SESSION_DATA_HERE', 1);
return $this->redirect( $this->Auth->redirect() );
} else {
$this->Session->setFlash("Username or Password is incorrect.Please try again.", 'error');
$this->redirect($this->referer());
}
验证Auth用户,如果是tru,则重定向到上次访问页面,否则返回到用户通过提供用户名和密码登录的登录屏幕