2011-10-20 9 views
-3

m以下のコードを使用しますが、2番目のブロックの2番目のブロックが失敗した場合は、 と2番目のifブロックに記載されたリンクにページがリダイレクトされるたびに発生します。以下のコードでリダイレクトするセッションを実装するにはどうすればよいですか?

if($_session['redirect']=='') 
    { 
    Yii::app()->session['redirect'] = 'redirect'; 

    } 
    if(Yii::app()->session['redirect']=='redirect') 
    { 
     Yii::app()->session['redirect'] = 'redirect_test'; 
     $this->redirect(array('/site/page','view'=>"nh7")); 
    } 
+0

よりgetState()は、それが何不明である私のページ –

+0

の上部にあるのsession_start()を言及していますやろうとしている。あなたのコードは、セッション変数が ''または 'redirect'に設定されている場合、最終的に2番目のブロックのリンクにリダイレクトされるように設定されています –

+0

実際に私はユーザーがログインしてセッションを設定するたびにリダイレクトしますリダイレクトする変数。 –

答えて

0

、このいずれかを試してください:

if(!Yii::app()->user->hasState('redirect')) 
    Yii::app()->user->setState('redirect', 'redirect'); 

if(Yii::app()->user->hasState('redirect')) { 
    $redirect = Yii::app()->user->getState('redirect'); 
    if($redirect == 'redirect') { 
     Yii::app()->user->setState('redirect', 'redirect_test'); 
     $this->redirect(array('/site/page','view'=>"nh7")); 
    }    
} 

Yii:app()->user->setState()setState()を使用してください、とかなりYii::app()->session['key']

+0

この問題を解決するには、ブラウザはdefalutによってクッキーを設定することです。どのようにして、ブラウザで次のセッションを閉じた後でも、セッションがクッキーから値を取得し、ページにリダイレクトされません。上記のコードはFacebookのアプリケーションで使用されています –

+0

私は必要なのは、ユーザーがアプリケーションを訪れたときにリダイレクトされたようにこのページに向けられています...しかし、クッキーが設定されると、アプリケーションを終了してもページにリダイレクトされません。それを再入力してください。 –

+0

@aslingga:なぜ、条件全体を繰り返すのではなく、通常の 'else'ブロックを使うのですか? – Sk8erPeter

関連する問題