Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Sachant que j'ai déja une session utilisateur qui gère ma connexion,
par exemple dans mes actions je commence par :
$connectedUser = Zend_Auth::getInstance()->getStorage()->read(); // Pour pouvoir lire l'id if ( empty( $connectedUser ) ) { // pour eviter d'afficher une erreur de BDD si pas connecté throw new Exception ( 'Veuillez vous connecter !' ); } else { $id_service = $connectedUser['id_service']; $id_profil = $connectedUser['id_profil']; }
Ce qui me permet d'afficher des element interessants en fonction de la personne connectée.
Tout fonctionne bien.
Par contre j'ai une variable tableau ($ids dans le code) à passer d'une action à une autre que je voudrai mettre dans une variable de session.
Voici [mon dernier essai] de code :
//////////////// Ecriture des id cochés dans une variable de session ./////////// $auth_enregistrement = new Zend_Session_Namespace('auth_enregistrement'); $auth_enregistrement = Zend_Auth::getInstance()->getStorage(); $auth_enregistrement->write($ids); $enregistrement = Zend_Auth::getInstance()->getStorage()->read(); $id_session=$test['enregistrement']; $this->view->id_session= $id_session; print_r($id_session);
Mais celui ci a deux effets : il m'efface ma session actuelle ( je ne vois plus le nom / prenom affichés sur chacune de mes pages) et de plus il ne m'écrit pas les données ou du moins je n'arrive pas à les récupérer...
Qu'ai je mal fait ?
Dernière modification par manuzed78 (17-02-2012 11:55:54)
Hors ligne
Salut,
C'est normal que les données de ta session actuelle soient effacées puisque tu récupères la session par défaut de Zend_Auth pour y remplacer le contenu. Ce que tu veux, j'imagine, c'est juste ajouter des valeurs en session, mais dans ton deuxième bout de code, cela n'a rien à voir avec Zend_Auth. Il te suffit juste de faire ça :
$auth_enregistrement = new Zend_Session_Namespace('auth_enregistrement'); $auth_enregistrement->mesID = $ids;
Hors ligne
Ha, merci Bakura pour ton aide.
J'enregistre bien mes données dans mon Zend_Session_Namespace('auth_enregistrement')
et je vérifie l'enregistrement avec un simple
// on lit la session
$this->view->session= $auth_enregistrement->ids;
qui m'affiche le tableau avec mes id
par contre quand je valide mon formulaire ( qui redirige vers la meme action), tout est perdu, je ne retrouve plus cette variable de session
comment puis je faire pour ne pas perdre ces données et qu'elles transitent ?
le Zend_Session_Namespace est il vraiment une variable de session ???
Dernière modification par manuzed78 (05-03-2012 17:21:46)
Hors ligne
Pour info, dans mon Bootstrap.php j'ai juste mis ceci :
///////////////////////////////////////////// Zend session /////////////
protected function _initSession() {
Zend_Session::start();
}
Mais je ne comprends toujours pas pourquoi cette variable de session perd ses valeurs des que je charge une page...
Hors ligne
Est ce que le fait d'utiliser Zend_Auth pourrait expliquer cet effacement de variable de session par le plus grand des hasards ???
Bah oui, je ne comprends pas alors je cherche partout
Hors ligne
Salut manuzed78,
Je rencontre le même soucis que toi, aurais-tu trouvé une solution? Si oui voudrais tu bien la partager? Merci
Hors ligne
Bonjour Souhiji
désolé pour la réponse tardive mais je viens à peine de m'en sortir...
Bon je n'y ai pas passé mes nuits non plus ( quoi que )
En fait, si personne ne trouve de solution c'est qu'il n'y en a pas !
je m'explique : le code tel que je le poste est BON
le code de Bakura est simple et parfaitement fonctionnel :
$auth_enregistrement = new Zend_Session_Namespace('auth_enregistrement'); $auth_enregistrement->mesID = $ids;
dans mon précedent post, l'erreur se situe ici :
"par contre quand je valide mon formulaire ( qui redirige vers la meme action), tout est perdu, je ne retrouve plus cette variable de session"
comme je redirigeais vers la meme action, j'écrivais un variable vide en session (en je réexécute l'écriture en variable de session) et hop, j'avais l'impression de tout perdre...
je viens de mettre un IF pour écrire dans ma variable de session uniquement si je viens de telle action et hop tout marche niquel...
C'etait un probleme de logique et non de session!
En espérant que cela puisse t'aider.
Dernière modification par manuzed78 (02-04-2012 17:14:06)
Hors ligne
Pages: 1