2012-03-25 53 views
2

我正在使用Zend,并且我发送了一封邮件给所有包含邮件链接的成员。只有登录的会员才能发表评论,但所有访客都可以看到。当然,无论谁点击电子邮件中的链接,都应该能够立即发表评论。 出于这个原因我想找出是检查是否点击链接的成员登录或没有一种方法: -Zend:使用电子邮件URL登录后重定向到页面

  • 如果已经登录邮件中的URL应该采取的成员邮政直接。
  • 如果未成功登录,则将该成员转发到登录页面,然后转到包含在链接中的正确URL。

我希望我解释一下自己。请问我是否。有人可以请建议最好的方法来做到这一点?

谢谢。 F.

回答

1
public function emailAction() 
{ 
$loggedIn = Zend_Auth::getInstance()->getIdentity(); 
if($loggedIn) 
{ 
$this->_helper->_forward('post); 
}else { 

    $this->_helper->_forward('login'); 
} 
} 

public function loginAction() 
{ 
$success = new Zend_Session_Namespace('success'); 
if(!isset($success->url)) 
{ 
    $success->url = $this->view->serverUrl(true); 
} 
$form = new Login_Form(); 
if($this->getRequest()->isPost() && $form->isValid($_POST)) 
{ 
$this->_redirect($success->url); 
} 

} 
+0

这看起来很有趣。谢谢。 – firefiter 2012-03-26 09:59:33

2

创建一个插件,并使用保存请求的URI的会话:

$this->_session->lastUrl = $this->getRequest()->getRequestUri(); 

然后,用户输入他的凭据后,他重定向到这个URL保存。

另一种方法是保存url并将它作为参数添加到下一个请求中,如Google,Yahoo和SO。

+0

谢谢你Liyali。我会研究这 – firefiter 2012-03-25 12:56:19

+0

不客气;) – Liyali 2012-03-25 13:35:26