Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Petit problème avec Zend form.
Quand j'arrive sur ma vue avec affichage, pour la première, du formulaire, celui ci arrive avec les messages des valideurs...
Je n'arrive pas a comprendre pourquoi ?
public static function getLoginForm() { require_once 'Zend/Form.php'; $form = new Zend_Form(); $form->setName('login'); $form->setMethod('post'); // Username $username = $form->createElement('text', 'username'); $username->setLabel('Nom d\'utilisateur') ->addValidator('alnum') ->setRequired(true) ->addFilter('StringToUpper'); // Password $password = $form->createElement('password', 'password'); $password->setLabel('Mot de passe') ->setRequired(true) ->addValidator('NotEmpty'); // Liste des sites de connexions. $listOptions = Login::getSite(); $site = $form->createElement('select', 'site'); $site->setLabel('Site') ->setMultiOptions($listOptions) ->setRequired(true); // Bouton Submit $submit = new Zend_Form_Element_Submit('submit'); $submit->setLabel('Envoyer'); // Ajoute les éléments au formulaire $form->addElement($username) ->addElement($password) ->addElement($site) ->addElement($submit); return $form; }
Merci d'avance
EB
Dernière modification par ManuB (09-02-2009 18:55:44)
Hors ligne
Hello,
Je ne pense pas que ton problème est dans le code que tu montres. Montres nous plutôt le code de ton contrôleur.
A+
Hors ligne
Voila :
AuthController
public function loginAction () { // Initialise le formulaire $form = Login::getLoginForm(); // Test si des valeurs ont été postées if (! $this->getRequest()->isPost()) { // Si rien n'est posté on renvoie au formulaire de login $this->view->form = $form; //return $this->render(); } // On test la validité du formulaire if ($form->isValid($_POST)) { $username = $form->getValue('username'); $password = $form->getValue('password'); $site = $form->getValue('site'); $dbAdapter = Zend_Registry::get('db'); $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter); $authAdapter->setTableName('XXXX'); $authAdapter->setIdentityColumn('XXXX'); $authAdapter->setCredentialColumn('XXXX'); // Valeur pour l'authentification $authAdapter->setIdentity($username); $authAdapter->setCredential($password); // Authentification $auth = Zend_Auth::getInstance(); $result = $auth->authenticate($authAdapter); if ($result->isValid()) { $storage = $auth->getStorage(); $ResultRowObject = $authAdapter->getResultRowObject(null,'mdp'); //Ajout du site dans persistance identité $resultColumn = "site"; $ResultRowObject->{$resultColumn} = $site; $storage->write($ResultRowObject); $this->_redirect('/'); } else { $this->view->form = $form; $this->view->message = 'Identification incorrecte !'; return $this->render('login'); } }else{ $this->view->form = $form; return $this->render('login'); } }
et le plugin :
class CG89_Controller_Plugin_Auth extends Zend_Controller_Plugin_Abstract { /** * Redirection vers le formulaire d'authentification si l'utilisateur n'est pas connecté */ public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) { $auth = Zend_Auth::getInstance(); if (!$auth->hasIdentity()) { $request->setControllerName('auth'); $request->setActionName('login'); } } }
merci d'avance...
Manu
Hors ligne
Hello,
Tu fais un isValid() même si ta requête n'est pas POST, c'est pour ça.
A+
Hors ligne
Merci Mickael .... J'ai pas assez ouvert mes yeux cet après midi...
Hors ligne
Pages: 1