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