как мне реализовать сеанс для перенаправления в приведенных ниже кодах?

#php #yii

#php #yii

Вопрос:

я использую следующий код, как указано ниже, но некоторые как, если условие второго из второго блока завершается неудачей, и каждый раз страница перенаправляется на ссылку, указанную во 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"));
    } 
  

Комментарии:

1. я упомянул session_start() в верхней части моей страницы

2. Неясно, что вы пытаетесь сделать. Ваш код настроен так, чтобы он в конечном итоге перенаправлялся на ссылку во втором блоке, если для переменной сеанса установлено значение » или «перенаправление»

3. на самом деле я хочу перенаправлять на ссылку каждый раз, когда пользователь входит в систему, и поэтому установил переменную сеанса для перенаправления.

Ответ №1:

Пожалуйста, попробуйте это:

 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() , и getState() вместо Yii::app()->session['key']

Комментарии:

1. ПОПРОБОВАЛ это, проблема в том, что браузер по умолчанию устанавливает cookie, не зная, как и из-за чего даже после того, как я закрою браузер в следующем месяце, сеанс принимает значение из cookie .. и я не перенаправлен на страницу …. вышеуказанные коды используются в приложении Facebook

2. итак, что мне нужно, когда пользователь посещает приложение, он перенаправляется на эту страницу как перенаправленный… но при установке cookie я не перенаправляюсь на страницу даже после того, как я выхожу из приложения и повторно ввожу его.

3. @aslingga: почему бы вам просто не использовать обычный else блок вместо повторения всего условия …..??