我有一个页面,其中包含我的Yii应用程序中的表单。
我想允许所有用户查看此表单,但在提交表单时,如果用户未登录 - 我想将其重定向到登录页面。用户登录后,我想继续提交原始表单。
例如在此页面中: http://www.yiiframework.com/demos/blog/index.php/post/13/sadfasdfasdf#comments 当用户点击“提交”时,他将被重定向到登录页面,登录后他的评论将被提交,登录用户。
我该怎么做?
我使用的解决方案:
我按照此信息设置了返回网址:http://www.yiiframework.com/wiki/43/adding-login-form-to-each-page/
在将访客发送到登录页面之前,我将POST信息保存在会话中。 当用户被重定向到原始页面时,我检查会话是否包含原始POST信息,如果确实如此 - 我用新用户ID保存它
答案 0 :(得分:2)
您应该使用:
$this->redirect(Yii::app()->user->returnUrl);
这将重定向已请求用户授权的页面。
答案 1 :(得分:1)
如果用户未登录,您将需要在会话中存储原始POST变量。否则,如果您使用其他人建议的returnUrl
,则您将丢失最初提交的评论。
答案 2 :(得分:0)
使用url referrer你可以做这个东西
$returnUrl = Yii::app()->request->urlReferrer;