IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Perte variable privée après redirect dans même classe


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut Perte variable privée après redirect dans même classe
    Bonjour,

    Dans ma classe, j'ai 2 variables privées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private $_error = "";
        private $_success = "";

    Dans mon code, je leur affecte des valeurs dans des fonctions, puis je redirect vers une fonction de la même classe, mais je perds la valeur


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $this->_success = "Mise à jour effectuée";
    $this->_helper->redirector->gotoUrl('/adminv2/crm/fiche?contactId=' . $contactId . '&onglet=d');
    Auriez-vous une explication? dois-je remplacer le "_redirect"? si oui par quoi?

    Merci

    Vince

  2. #2
    Membre émérite Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Par défaut
    Bonjour,

    Le helpeur redirect est une redirection HTTP via header, donc une nouvelle requête http du client. Par défaut, http (et PHP donc) sont stateless, donc chaque requête commence à zéro, sauf en cas d'utilisation de persistance (session globalement).

    Tu devrais peut être utiliser le helpeur forward plutôt selon ton cas d'utilisation : what is the difference between redirect and forward in zend framework

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    le forward pourrait fonctionner sauf qu'il me fait faire toutes les valeurs des variables issues de la classe dont elle est étendue...

    une solution?

  4. #4
    Membre émérite Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Par défaut
    Désolé j'ai relu ta phrase plusieurs fois mais je ne vois pas ce que tu veux dire...

    Je crois qu'il y a un malentendu sur le fait que PHP est stateless dans ton esprit...

    Par contre après avoir relu le premier message, tu veux en fait utiliser un flashmessenger. En gros, on stocke la valeur en session, puis hop on la ressort après la redirection http (stateful donc !!!)

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    oui j'avais pensé au flashmessenger, mais je ne sais pour quelle raison , il ne fonctionne pas toujours.

    Je m'explique, dans ma classe, j'ai une méthode init(), qui fait appelle à la même méthode de la classe dont elle étend.

    Et avec le forward, je perds toutes les initialisations faites dans ces méthodes init

  6. #6
    Membre émérite Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Par défaut
    Pourrais-tu expliquer le problème avec le flash messenger ? ça me semble être ta meilleure piste.

    Pour le reste, la méthode init est appelée dans la dispatch loop de mémoire (je n'ai pas fait de ZF1 depuis environ 3 ans...).

    Aurais-tu la possibilité de donner plus de code ? Si ça se trouve tes erreurs sont ailleurs.

Discussions similaires

  1. Portée de variable de type Array dans une class
    Par oceanbigone dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/03/2013, 02h02
  2. Problème de variable membre en pointeur dans une classe
    Par medrimonia dans le forum Langage
    Réponses: 2
    Dernier message: 09/06/2012, 18h00
  3. récupérer une variable d'une fonction dans une classe
    Par free_dom dans le forum Général Python
    Réponses: 20
    Dernier message: 08/07/2009, 12h35
  4. Réponses: 5
    Dernier message: 28/09/2007, 14h58
  5. Faire une redirection dans une classe externe
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/06/2007, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo