J'ai mis des sessions pour mes propriétés/méthodes WebUser comme suitDilemme réel lors de l'utilisation des sessions, cookies dans Yii
public function getRole(){
$user = $this->loadUser(Yii::app()->user->id);
$this->setState('roleId', $user->roles_id);
return $user->roles_id;
}
Dans la config, je l'ai mis en sessions Autostart 'true', cookieMode à « seulement '. Je comprends que quand je «setState», le cookie avec le même nom est également créé avec la variable de session. Actuellement, je fais appel à ces variables à l'aide Yii::app()->user->roleId;
Ma question est la suivante: a) Pour utiliser des cookies et/ou les variables de session déjà définies, devrais-je les appeler à l'aide Yii::app()->request->cookies['roleId']; or Yii::app()->session['roleId']?
b) Est-ce que l'appel Yii::app()->user->roleId
get moi la valeur si elle est déjà définie comme Cookie ou Session au lieu d'exécuter à nouveau la méthode entière?
J'apprécie votre soutien!
Merci, cela semble être une bonne solution. Mais j'ai déjà autorisé les cookies. Pensez-vous que je devrais désactiver les cookies au total? Que se passe-t-il lorsque j'utilise à la fois les sessions et le cookie et que quelqu'un a trafiqué le cookie? Où devrais-je utiliser des cookies alors? –
Non, pas du tout. Je voulais simplement ne pas enregistrer les variables critiques dans un cookie. Avoir des cookies est bien, et bien sûr vous en avez besoin au moins pour stocker l'ID de session, sinon vos sessions ne fonctionneraient pas. –
C'est ce que j'ai fait. Veuillez vérifier: public function getRoleId() { if ($ this-> hasState ("roleId")) {return $ this-> getState ("roleId");} $ utilisateur = $ this-> loadUser (Yii :: app() -> utilisateur-> id); $ this-> setState ('roleId', $ user-> roles_id); return $ utilisateur-> roles_id; } –