Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je travail sur une appli web développée avec Zend 1.11.
J'ai des compte utilisateurs et un système de droit gérer avec ACL.
Mon problème est que lorsque que veux modifier les données stocké en session du compte de mon utilisateur, comme les droits par exemple, je n'y arrive pas.
//En simple voila mes données en sessions: $auth = Zend_Auth::getInstance(); $auth->getIdentity()->USER_id; $auth->getIdentity()->USER_nom; $auth->getIdentity()->USER_acl_roles;
Admettons que mon utilisateurs ai changé son nom, je voudrais mettre à jour la session comme suit:
//Methode normal, enfin je crois.... $authStorage = Zend_Auth::getInstance()->getStorage(); $authData = $authStorage->read(); $authData->USER_name = 'newName'; $authStorage->write($authData); //ou Mode bourrin sinon $_SESSION['Zend_Auth']['storage']->USER_name = 'TuVasChangerDeNomOui????';
Cependant aucune de c'est deux méthodes ne fonctionne.
Ma session est belle est bien édité pendant l’exécution du code PHP qui suivra, mais dés que je recharge ma page la session redevient comme avant.
Apparemment ma session se fait écraser par une copie de la session d'origine stockée dans un cookie de Zend.
A chaque chargement de page la session est écrasé avec le contenu du cookie.
http://framework.zend.com/manual/1.12/f … ement.html
D’après la doc je dirais que ce paramètre : use_only_cookies n'est pas étranger à mes malheurs.
Cependant il est explicitement précisé qu'il ne faut pas le changé pour des raisons de sécurités.
Comment changé les données de ma session dans c'est condition ?
Pour le moment la seul solution que j'ai trouvé c'est de faire ma session perso à coté Zend_Auth->storage et d'abandonné complément la gestion de Session de ZEND.
Mais c'est dommage qu'en même...
Quelqu'un a une idée de ce qui cloche dans ma façon de faire.
Un paramètre à changer ? une fonction à utiliser ?
merci d'avance.
Dernière modification par RodFrank (02-06-2016 17:35:05)
Hors ligne
Bonjour,
Après de longue recherche j'ai trouvé le problème.
Dans une classe du projet qui surcharge la class Zend_Controller_Action.
Dans la fonction predispatch qui surcharge la fonction du parent il y avait un :
session_write_close() ;
Apparemment Zend une fois la session fermé de cette manière régénère la session.
ZEND vaux qu'on passe par ses fonctions pour kill la session.
Enfin c'est ce qu'il me semble comprendre en mettant le nez dans le code de ZEND.
merci qu'en même
Hors ligne
Pages: 1