|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2005 Messages : 127 ![]() |
Bonjour,
J'ai commencé à faire un petit site avec juste l'index et authentification (Auth) Et quand une personne essaye de se loguer (avec Zend_Auth de Rob Allen) à la fin de la classe j'ai fait un $this->_redirect('/'); qui me renvoie donc à la page d'accueil (index). Je voudrais savoir si on peut au moment de la redirection envoyer une variable et de la recuperer dans l'index pour, par exemple afficher un message. Je sais qu'on peut faire une session mais j'avais plus l'idée de l'utiliser ponctuelle car j'ai besoin de cette variable que dans l'index. Bref je ne sais pas si j'ai bien expliquer, je débute encore merci. |
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Inscription : février 2004 Messages : 456 ![]() |
Salut,
tu peux le faire en envoyant des variables par l'url (méthode GET). |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2005 Messages : 127 ![]() |
oui en fesant
mais je voudrais eviter d'avoir la variable dans l'url. et je voudrais eviter de la mettre dans la session car elle sera instancié pendant toute l'application (enfin si je ne dis pas de betise) sur ce lien, une personne a deja posé la meme question mais j'ai l'impression que la réponse n'est pas celle que j'attendais http://www.developpez.net/forums/sho...d.php?t=340627 |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : février 2004 Messages : 456 ![]() |
Essaie de le faire par les sessions alors, tes variables n'existeront que tant que ta session est active (tant que tu places des session_start () en début de page).
Tu peux aussi supprimer la variable avec unlink () si nécessaire. |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2005 Messages : 127 ![]() |
Bon ben ok,
je pensais qu'il y avait une autre solution du genre Code :
$this->_redirect('/','variable=blabla') ou alors, je me complique trop la vie et ca se soigne merci encore beaucoup pour vos réponses |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 1 249 ![]() |
Personnellement, je ne suis pas pour le passage d'un message en GET. C'est pas propre du tout, un user peut afficher n'importe quoi en changeant le GET, et c'est potentiellement une faille XSS (soit directement si tu n'échappes pas la donnée, soit indirectement par affichage d'un message non désiré).
Sous réserve d'une autre méthode dans le ZF (ce qui m'intéresse d'ailleurs |
|
|
00
|
|
|
#7 |
|
Membre chevronné
![]() Développeur Web Inscription : avril 2005 Messages : 726 ![]() |
Je vais peut-être dire une bétise, mais je crois que le Zend_Registry pourrait faire ce que tu veux, c'est à dire stocker provisoirement quelque chose (et pas définitivement comme avec une session).
Sinon pour la méthode Get, tu as un truc avec Zend : tes routes doivent être a peu près comme ça : "/module/controller/action" et avec des paramètres ça donne, par exemple "/module/controller/action/param1/value1/param2/value2"...
__________________
HADOPI : black-out du net! |
|
|
00
|
|
|
#8 | |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 1 249 ![]() |
Citation:
|
|
|
|
00
|
|
|
#9 |
|
Membre chevronné
![]() Développeur Web Inscription : avril 2005 Messages : 726 ![]() |
Ok j'ai compris
En fait, le Registry ne permet pas grand chose, finalement; c'est simplement un autre genre de variable globale? Enfin on va pas troller sur un sujet sérieux, je me renseignerais ^^
__________________
HADOPI : black-out du net! |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 1 249 ![]() |
C'est en effet une alternative aux variables globales, comme indiqué dans la doc. C'est une implémentation du design pattern registry.
|
|
|
00
|
|
|
#11 | |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
Citation:
je te propose plutôt de passer un code du message par exemple http://serveur/module/controller/action/message/clientEnregistre ou .../message/imageTropGrande ensuite dans la vue tu testes si le code du message est "clientEnregistre" tu affiches "Les informations du client ont bien été enregistrées". Tu peux même l'afficher dans une autre langue sans changer l'URL donc là dans cet exemple on voit bien les différentes séparations : le contrôleur envoie le code du message et c'est la vue qui s'occupe de l'affichage, la couleur, la langue, etc.
__________________
Modérateur PHP |
|
|
|
00
|
|
|
#12 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2005 Messages : 127 ![]() |
Merci encore pour toutes vos réponses.
Donc j'ai utilisé les sessions de Zend. Je mets le code meme si c'est simple on ne sait jamais si ca peut aider quelqu'un. Dans le controlleur avant la redirection : Code :
Code :
Merci |
||||
|
|
00
|
|
|
#13 | |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 1 249 ![]() |
Citation:
|
|
|
|
00
|
|
|
#14 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2005 Messages : 127 ![]() |
ah ok ok
et il y a une méthode pour ou je fais un classic |
|
|
00
|
|
|
#15 | |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 1 249 ![]() |
Citation:
|
|
|
|
00
|
|
|
#16 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2005 Messages : 127 ![]() |
ah ouais ?
si on fait : on supprime que la valeur myKey de l'objet $defaultNamespace par contre si on fait : on supprime l'objet... peut etre je dis une connerie la ou je me trompe de langage |
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 1 249 ![]() |
C'est parfaitement juste. Mais pourquoi détruire toute la session plutôt que simplement le message ?
|
|
|
00
|
|
|
#18 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2005 Messages : 127 ![]() |
Quand je recupere cette variable, je suis presque à la page d'accueil, donc je n'ai encore aucune information à garder, à part cette variable et je n'utilise pas d'autres variables.
Donc je n'ai absolument plus besoin de session (je suis encore dans le IndexControleur) De toute facon, dans un autre controleur, je pourrai réouvrir une session (j'espere ne pas avoir dit de connerie)
|
|
|
00
|
|
|
#19 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2005 Messages : 127 ![]() |
Euh, je viens de remarquer quelque chose.
Si je relance ma page qui reçoit : Code :
Donc la solution c'est de mettre cela : Code :
|
||||
|
|
00
|
|
|
#20 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 1 249 ![]() |
C'est normal. C'est pour cela que tu dois détruire la session ou la variable myKey juste après l'avoir affectée à la vue.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com