Как передать URL-адрес в качестве параметра URL-адреса в Zend Framework?
Мой вопрос порождает от меня отправку электронной почты пользователю с чем-то вроде следующего:
Как вы можете видеть, я пытаюсь передать url-адрес в качестве параметра "dest", чтобы страница входа знала, куда перенаправить пользователя после входа в систему. Однако мне представляется следующее:
Это точка зрения, которую я использую, чтобы создайте сообщение электронной почты:
<p>
<?if($this->invitation->user):?>
<a href='<?=$this->serverUrl($this->baseUrl().$this->url(array(
'action'=>'index',
'controller'=>'login',
'dest'=>$this->url(array(
'action'=>'confirm',
'controller'=>'invitation',
'confirmation_key'=>$this->invitation->confirmation_key
))
)));?>'>Log in to confirm this invitation.</a>
//The view continues...
Любая идея о том, как удержать это от перевода кодированных URI элементов в их буквальное значение, была бы очень признательна.
3 ответа:
Не можете ли вы просто отправить его в качестве параметра simpel GET?
Вот как это в основном делается на самом деле.
Вы также можете обновить свою ссылку следующим образом:
<a href='<?=$this->serverUrl($this->baseUrl().$this->url(array( 'action'=>'index', 'controller'=>'login', 'dest'=>base64_encode($this->url(array( 'action'=>'confirm', 'controller'=>'invitation', 'confirmation_key'=>$this->invitation->confirmation_key ))))
));?>'>Log in to confirm this invitation.</a>
Но на
/login/index
, вам нужно будет использоватьbase64_decode()
, чтобы получить исходное не самое красивое решение, но если вы не можете использовать простую строку запроса, это способ, как безопасно передать строку через URL.