Здесь я иду, что делаю, я использую
Yii::app()->SESSION['userid']
без
Yii::app()->session->open();
при регистрации
Yii::app()->session->destroy();
при выходе из системы
Я хочу знать, не стоит ли открывать и уничтожать сессию, это достойно. Yii делает это внутренне.
Еще одна странная вещь, которую я не знаю, что происходит. В том же браузере для сеанса я могу войти в систему для нескольких пользователей .. этого не должно быть. Поэтому я не использую методы open и destroy session.
public function actionLogout() { Yii::app()->user->logout(); Yii::app()->session->clear(); $this->redirect(Yii::app()->controller->module->returnLogoutUrl); }
изpublic function actionLogout() { Yii::app()->user->logout(); Yii::app()->session->clear(); $this->redirect(Yii::app()->controller->module->returnLogoutUrl); }
Пожалуйста, дайте мне знать, как мне это понять
Для создания сессии yii
Yii::app()->session['userid'] = "value";
Вы можете получить такую ценность
$sleep = Yii::app()->session['userid'];
И отключить сеанс вроде
unset(Yii::app()->session['userid']); # Remove the session
В случае выхода пользователя из аккаунта вам необходимо удалить весь сеанс.
Yii::app()->session->clear();
После этого вам нужно удалить фактические данные с сервера
Yii::app()->session->destroy();
Не очищать сеанс, только выход из системы:
Yii::app()->user->logout(false);
В YII сеанс обрабатывается классом «CHttpSession» – http://www.yiiframework.com/doc/api/1.1/CHttpSession
Если вы используете метод open () ' Yii::app()->session->open();
зависит от вашей конфигурации. Если в main.php
вы установили
'session' => array ( 'autoStart' => true, ),
то сеанс будет запускаться автоматически самим YII. Вы можете ссылаться на исходный код метода init () здесь – https://github.com/yiisoft/yii/blob/1.1.16/framework/web/CHttpSession.php#L83
Что касается вашего вопроса об использовании методов close () или «destroy ()», метод «close» () «только отключает ключи сеанса, но« destroy »удаляет все данные сеанса
Как только вы закончите сеанс, он позволит вам в одном браузере несколько раз, я имею в виду, что для того же URL-адреса он позволит вам войти в систему, вы можете просто переименовать свою переменную сеанса с другим именем и проверить, что переменная участника должна войти в систему с этим.
Сессия – это компонент веб-приложения, к которому можно получить доступ через Yii :: $ app-> session.
Чтобы начать сеанс, вызовите функцию open (); Чтобы завершить и отправить данные сеанса, вызовите функцию close (); Чтобы уничтожить сеанс, вызовите destroy ().
Сессия может использоваться как массив для установки и получения данных сеанса. Например,
$session = new Session; $session->open(); $value1 = $session['name1']; // get session variable 'name1' $value2 = $session['name2']; // get session variable 'name2' foreach ($session as $name => $value) // traverse all session variables $session['name3'] = $value3; // set session variable 'name3'