Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-11-2010 10:57:42

Karudev
Membre
Date d'inscription: 19-07-2010
Messages: 16

Utiliser les Session en Zend

Bonjour
Avant ZEND j'utilisais le stysteme de SESSION classic , session_start(); ...
J'ai essayé le système de session ZEND mais la session n'est pas sauvergardé.

Puis je avoir un simple exemple .
Merci d'avance

Dernière modification par Karudev (25-11-2010 10:58:08)

Hors ligne

 

#2 25-11-2010 11:06:24

mamady.kaba
Membre
Date d'inscription: 25-11-2010
Messages: 20

Re: Utiliser les Session en Zend

Zend_Session passe par un système d'espace de nommage :

Zend_Session gère comme son nom l’indique les Sessions et est une API qui permet de stocker des données de manière objet.

Zend_Session API et Zend_Session_Namespace sont distingués :
- Zend_Session permet de gérer les démarrages et les arrêts de la session, or Zend_Session_Namespace représente l’objet qui va contenir les données à stocker en session.

Deux possibilités de lancement de session:
- Soit on déclarer Zend_Session :: start() dans le Boostrap
- Soit on crée un nouvel espace de nommage :
         Zend_Session_Namespace démarre la session par défaut.

Utilisation Zend_Session_Namespace :
-On crée l’objet en lui attribuant un nom de notre choix :
Ex : Dans IndexController.php
On envoi un tableau de données que l’on place dans une case de l’espace de nommage ‘admin’ que l’on nomme ‘user’.

Code:

$unNamespace = new Zend_Session_Namespace('admin');
                $unNamespace->user = $data ;
        }

-Ensuite pour récupérer les données :

Code:

$unNamespace = new Zend_Session_Namespace('admin');
        if(isset($unNamespace->user)){
             $this->view->message = "Bonjour <font color=\"blue\">".$unNamespace->user->username." !</font><br />".
                                     "<h3>Infos :</h3><br><br><font color=\"blue\">Id : </font>".
                                     $unNamespace->user->id."<br><font color=\"blue\">Login : </font>".
                                     $unNamespace->user->username." <br><font color=\"blue\">Nom : </font>".
                                     $unNamespace->user->nom."<br>";
        }

Dernière modification par mamady.kaba (25-11-2010 11:39:03)

Hors ligne

 

#3 25-11-2010 11:11:12

mamady.kaba
Membre
Date d'inscription: 25-11-2010
Messages: 20

Re: Utiliser les Session en Zend

Malgré tout, Zend_Session stocke également dans $_SESSION par défaut.

Hors ligne

 

#4 25-11-2010 11:22:26

Karudev
Membre
Date d'inscription: 19-07-2010
Messages: 16

Re: Utiliser les Session en Zend

merci de ta réponse.
J'avais compris Zend_Session_Namespace.
Mais mon object Zend_Session_Namespace n'est pas sauvegardé quand je change de controller.

IndexController à ->RedactionController par exemple .

Sinon j'ai testé le classic

session_start();
echo $_SESSION['test'];

Effectivement ça marche

Dernière modification par Karudev (25-11-2010 11:22:57)

Hors ligne

 

#5 25-11-2010 11:30:46

mamady.kaba
Membre
Date d'inscription: 25-11-2010
Messages: 20

Re: Utiliser les Session en Zend

Montre ton code dans IndexController et celui de RedactionController où tu définit et appel l'espace de nommage stp...

Hors ligne

 

#6 25-11-2010 11:41:41

Karudev
Membre
Date d'inscription: 19-07-2010
Messages: 16

Re: Utiliser les Session en Zend

Code:

//IndexController

function init()
    {
    if (isset($_GET['id_contact']) and isset($_GET['id_employe']) and $_GET['id_contact']!=NULL and $_GET['id_employe']!=NULL)
        {    
        
        $session = new Zend_Session_Namespace('default');      
    
    
        }
        else
        {
         $this->_redirect ('/error/connexion')    ;
        }
    }
    
 function indexAction()
    {
        
        $this->view->title = 'APSIE Business plan';
        
        
        $contact = new ContactTb();
        $c=$contact->get_value();
        $session->contact =  $c;
    
        
        
        $this->view->nom_complet =$session->contact->nom_complet;
        
        
        $projet= new ProjetTb();
        $p=$projet->get_value();
    
        
    
        $account = new AccountsTb();
        $a=$account->get_value();
        
        
        
        
        
        
        
    }

Code:

//RedactionController

function init()
    {
        
    //Variable de Session
        
        $session = new Zend_Session_Namespace('default');
        $this->view->nom_complet =$session->contact->nom_complet;
        
        
    }

Hors ligne

 

#7 25-11-2010 11:43:17

Karudev
Membre
Date d'inscription: 19-07-2010
Messages: 16

Re: Utiliser les Session en Zend

J'ai retiré affectation de valeur  $this->view->nom_complet mis dans la fonction init() et mis dans les actions respectives et ca marche apparemment.

Init() ne se lance pas par défault?

Dernière modification par Karudev (25-11-2010 11:45:09)

Hors ligne

 

#8 25-11-2010 11:50:23

Karudev
Membre
Date d'inscription: 19-07-2010
Messages: 16

Re: Utiliser les Session en Zend

Le prob est résolu merci pr ton aide

Hors ligne

 

#9 25-11-2010 11:54:08

mamady.kaba
Membre
Date d'inscription: 25-11-2010
Messages: 20

Re: Utiliser les Session en Zend

Normalement si, init() est lancé par défaut.
Tu as bien IndexController extends Zend_Controller_Action ?
Parce que moi je n'ai fait aucun réglage préalable, en mettant init() il ré implémente la méthode init() qui est dans le Zend_Controller_Action

Hors ligne

 

#10 25-11-2010 11:55:23

mamady.kaba
Membre
Date d'inscription: 25-11-2010
Messages: 20

Re: Utiliser les Session en Zend

ou ptet qu'il ne rentre pas dans le if de ton init()

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages