2012-03-13 10 views
1

私はサービスコントローラー、ログインアクション(/ service/login)に参加しています。プロファイルコントローラー、登録アクション(/ 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

答えて

3

パラメータを安全に渡すには、セッションにデータを保存するか、セッションを使用できない場合はデータベースに保存する必要があります。

Zend_Sessionを使用すると、データを取得できる次のページビューまでデータを一時的に保存することができます。このページビューは削除されます(または保持することができます)。

profile/register
$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); 

そして:

$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

関連する問題