Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
je voudrais passer un paramètre à une action.
l'idée est de saisir puis de valider un mot de passe (sans login).
j'ai donc une action "accessAction", qui contient un formulaire qui va ensuite vers "verifieAction".
Dans "verifieAction", je vérifie le mot de passe et s'il n'est pas correct, je voudrais invoquer de nouveau "accessAction", mais avec un paramètre qui lui indique qu'il faut afficher un message comme quoi le mot de passe saisi n'était pas valide.
j'ai bien eu quelques idées assez pourries.
ma question est de savoir quelle est la belle façon de faire en Zend MVC.
merci d'avance
Dernière modification par Remy (25-08-2008 17:01:36)
Hors ligne
il n'y a pas 1 seule manière de faire.
avec l'architecture que tu explique je pense que le plus simple c'est tout simplement un token ou un param
un token dans l'url du genre
?error
que tu test:
if(isset($_GET['error'])) { //erreur detectée }
un token ce n'est pas propre ni très pro. mais suivant ton niveau cela peux entièrement te satisfaire.
si tu veux aller plus en avant, cherche du coté de "flashmessenger " de "Zend_Auth" et encore du systeme de "routes" puis pourquoi pas aussi une petite recherche sur "_getParam" ^^
amuse toi bien
Hors ligne
Heu, le helper flashMessenger est exactement dédié à cette tache.
Couplé avec un helper redirectToOriginPage() , le tour est joué ^^
Hors ligne
lethak a écrit:
une petite recherche sur "_getParam" ^^
amuse toi bien
Recherche faite : c'est exactement ce que je cherchais.
Merci.
Hors ligne
Julien a écrit:
Heu, le helper flashMessenger est exactement dédié à cette tache.
Couplé avec un helper redirectToOriginPage() , le tour est joué ^^
intéressant aussi.
Merci
Hors ligne
Remy a écrit:
lethak a écrit:
une petite recherche sur "_getParam" ^^
amuse toi bienRecherche faite : c'est exactement ce que je cherchais.
Merci.
Ca ressemble à ce que je cherchais, à un détail près :
_setParam
_redirect
Le redirect efface les paramètres.
Dans la doc une seule trace de "_setParam", mais c'est anecdotique. Rien de sérieux.
Un peu plus d'idée ou j'oublie ?
Hors ligne
essai ce code :
dans le controlleur
public function accessAction() { $submit = $this->_request->getParams('submit' , null ) ; if(isset ($submit)){ $login =$this->_request->getParams('login' , null ) ; $password =$this->_request->getParams('password' , null ) ; $this->_forward('verifie',null,null, array("pseudo"=>$login , "motpass"=>$password) ); } $this->render('loginpage'); return; } public function verifieAction() { $login =$this->_request->getParams('pseudo' , null ) ; $password =$this->_request->getParams('motpass' , null ); if( isset( $login) && isset($password)) { if( $login=='root' & $password=='admin') $this->view->message ="connexion valide."; else $this->view->message ="connexion invalide."; } $this->render('loginpage'); return; }
et dans la page de connexion :
<form method="post" action="<?php echo $this->url(array('controller'=>'index','action'=>'access'));?>" > <table > <tr> <td >Utilisateur:</td> <td> <input name="login" type="text"> </td> </tr> <tr> <td>Mot de passe:</td> <td> <input name="password" type="password"> </td> </tr> <tr> <td> </td> <td> <input type="submit" name="submit" value="Connexion" > </td> </tr> </table> </form> <?php if( isset($this->message) ) echo $this->message; '?>
Dernière modification par mega_info (31-08-2008 22:59:06)
Hors ligne