Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 21-08-2008 11:48:06

Remy
Membre
Date d'inscription: 18-08-2008
Messages: 17

Passer un paramètre à une action

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

 

#2 21-08-2008 19:20:52

lethak
Membre
Lieu: France
Date d'inscription: 05-04-2008
Messages: 168

Re: Passer un paramètre à une action

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

Code:

?error

que tu test:

Code:

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


IT Dev @Twitter

Hors ligne

 

#3 22-08-2008 11:31:56

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: Passer un paramètre à une action

Heu, le helper flashMessenger est exactement dédié à cette tache.
Couplé avec un helper redirectToOriginPage() , le tour est joué ^^

Hors ligne

 

#4 25-08-2008 14:19:15

Remy
Membre
Date d'inscription: 18-08-2008
Messages: 17

Re: Passer un paramètre à une action

lethak a écrit:

une petite recherche sur "_getParam" ^^

amuse toi bien

Recherche faite : c'est exactement ce que je cherchais.
Merci.

Hors ligne

 

#5 25-08-2008 14:20:25

Remy
Membre
Date d'inscription: 18-08-2008
Messages: 17

Re: Passer un paramètre à une action

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

 

#6 25-08-2008 17:06:20

Remy
Membre
Date d'inscription: 18-08-2008
Messages: 17

Re: Passer un paramètre à une action

Remy a écrit:

lethak a écrit:

une petite recherche sur "_getParam" ^^

amuse toi bien

Recherche 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

 

#7 31-08-2008 22:58:03

mega_info
Nouveau membre
Date d'inscription: 31-08-2008
Messages: 8

Re: Passer un paramètre à une action

essai  ce code :
dans le controlleur

Code:

    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 :

Code:

<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>&nbsp;</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

 

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