Ici je vais ce que je fais est que j'utilise
Yii::app()->SESSION['userid']
sans
Yii::app()->session->open();
à la connexion
Yii::app()->session->destroy();
à la déconnexion
Je veux savoir si ne faites pas la session d'ouverture et de destruction est-elle digne. Est-ce que Yii le fait en interne?.
Une autre chose étrange que je ne sais pas ce qui se passe. Dans le même navigateur pour une session, je peux me connecter pour plusieurs utilisateurs .. cela ne devrait pas arriver ainsi. Est-ce que je n'utilise pas les méthodes d'ouverture et de destruction de session.
public function actionLogout()
{
Yii::app()->user->logout();
Yii::app()->session->clear();
$this->redirect(Yii::app()->controller->module->returnLogoutUrl);
}
S'il vous plaît laissez-moi savoir comment puis-je comprendre cela
Pour créer votre session
Yii::app()->session['userid'] = "value";
Vous pouvez obtenir de la valeur comme ça
$sleep = Yii::app()->session['userid'];
Et session non réglée comme
unset(Yii::app()->session['userid']); # Remove the session
En cas de déconnexion de l'utilisateur, vous devez supprimer toute la session.
Yii::app()->session->clear();
Après cela, vous devez supprimer les données réelles du serveur.
Yii::app()->session->destroy();
N'effacez pas la session, ne vous déconnectez que:
Yii::app()->user->logout(false);
Une fois que vous avez une session craeted, il vous permettra de vous connecter plusieurs fois dans le même navigateur, ce qui vous permettra de renommer votre variable de session avec un nom différent et de vérifier cette variable particulière pour vous connecter avec cela.
Session est un composant d'application Web accessible via Yii :: $ app-> session.
Pour démarrer la session, appelez open (); Pour compléter et envoyer les données de session, appelez close (); Pour détruire la session, appelez destroy ().
Session peut être utilisé comme un tableau pour définir et obtenir des données de session. Par exemple,
$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'
Dans YII, la session est gérée par la classe 'CHttpSession' - http://www.yiiframework.com/doc/api/1.1/CHttpSession
Si vous utilisez la méthode 'open ()' Yii::app()->session->open();
dépend de votre configuration. Si dans le main.php
, vous avez défini le
'session' => array (
'autoStart' => true,
),
alors la session sera automatiquement lancée par YII lui-même . Vous pouvez vous référer au code source de la méthode 'init ()' ici - https://github.com/yiisoft/yii/blob/ 1.1.16/framework/web/CHttpSession.php # L83
En ce qui concerne votre question sur l'utilisation des méthodes 'close ()' ou 'destroy ()', la méthode 'close ()' ne supprime que les clés de Session mais 'destroy' supprime toutes les données de la session.