2012-03-13 36 views
1

我在服務控制器中,登錄操作(/服務/登錄),我想將名稱,電子郵件和公司傳遞到配置文件控制器,註冊操作(/ profile/register)。在Zend中安全地傳遞參數

目前我在做這樣

$this->_redirect('/profile/register/?name='.$name.'&emailid='.$email.'&companyid='.$company); 

但我想通過這種方式來/型材/的方式註冊,使得該URL的用戶無法看到這些。

我試着用$這個 - > _着這樣

$params = array(
name=>$name, 
emailid=>$email, 
companyid=>$company 
); 
$this->_forward('register','profile',null,$params); 

但是,這是行不通的。有沒有其他辦法可以做到這一點?

+0

爲什麼不向前工作?你如何試圖獲得你的參數? – arraintxo 2012-03-14 09:42:42

回答

3

要安全地傳遞參數,您應該將數據存儲在會話中,或者如果您不能使用會話,那麼在數據庫中。

您可以使用Zend_Session臨時存儲數據,直到您可以檢索它的下一個頁面視圖並將其刪除(或者您可以讓其保留)。

$s = new Zend_Session_Namespace('registrationData'); 
$s->setExpirationHops(1); // expire the namespace after 1 page view 
$s->name = $name; 
$s->email = $email; 
$s->companyId = $company; 

// ... 
return $this->_redirect('/profile/register); 

然後在profile/register

$s = new Zend_Session_Namespace('registrationData'); 
$name = $s->name; 
$email = $s->email; 
$companyId = $s->companyId; 
// when this request terminates, the data will be deleted if you leave 
// setExpirationHops as 1. 

參見Zend_Session - namespace expiration

相關問題