Zend: перенаправить на страницу после входа с URL-адреса из электронной почты - PullRequest
2 голосов
/ 25 марта 2012

Я использую Zend, и мне отправлено электронное письмо всем участникам, содержащее ссылку на сообщение. Комментировать могут только зарегистрированные пользователи, но это могут видеть все гости. Конечно, тот, кто нажимает на ссылку в письме, должен иметь возможность сразу же комментировать. По этой причине я хотел бы узнать, как проверить, вошел ли участник, щелкающий по ссылке, или нет: -

  • , если вы уже вошли в URL-адрес в электронном письме, вы должны перенаправить участника в сообщение.
  • если не войти в систему, перенаправьте пользователя на страницу входа, а затем на соответствующий URL, содержащийся в ссылке.

Надеюсь, я объяснил себе. Пожалуйста, спросите меня, если нет. Может кто-нибудь посоветовать, пожалуйста, лучший способ сделать это?

Спасибо. F.

Ответы [ 2 ]

2 голосов
/ 25 марта 2012

Создайте плагин и сохраните запрошенный Uri в сеансе, используя:

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

Затем, после того как пользователь введет свои учетные данные, перенаправьте его на этот сохраненный URL-адрес.

Другой вариант - сохранить URL-адрес и добавить его в качестве параметра для следующих запросов, как это делают Google, Yahoo и SO.

1 голос
/ 26 марта 2012
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);
}

}
...