Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
je suis débutant et j'essaye de comprendre la notion de formulaire.
J'ai un problème :
Quand je passe sur mon controlleur LoginController, je n'arrive pas à tester
si une saisie a été faite; et $request->isPost() est toujorus à vide.
A votre avis pourquoi ?
merci de votre aide
public function loginAction() { $form = new Application_Form_LoginForm(); $request = $this->getRequest(); if ($request->isPost()) { $formData = $request->getPost(); if ($form->isValid($formData)) { $email = $form->getValue ( 'email' ); $password = $form->getValue ( 'password' ); var_dump(array($email,$password)); $this->_helper->redirector ( 'index', 'index' ); //return $this->_helper->redirector('Index','index'); } }
Hors ligne
Je ne vois pas ce qu'il manque dans ton code désolé,
Mais je te passe une de mes action de formulaire, peut être que cela pourra t'aider :
public function createAction() { // Instanciation $form = new TonFormulaire(); // Si post if($this->getRequest()->isPost()) { // Si valide if($form->isValid($_POST)) { // Traitements // + forward vers l'index du controller au besoin return $this->_forward('index'); } } // Set de l'action du form $form->setAction('/administration/page/create'); // Je rentre le formulaire dans une variable de vue $this->view->form = $form; }
Dernière modification par TeChn4K (30-07-2010 08:21:36)
Hors ligne
Merci, mais il n'y a pas de différence effectivement.
Cela vient de
$form = new Application_Form_LoginForm(); $request = $this->getRequest(); if ($request->isPost()) { $formData = $request->getPost(); ...
isPost n'est pas valorisé !
Deux constats :
1. si je fait un dump de request, cela me donne :
object(Zend_Controller_Request_Http)#21 (15) { ["_paramSources:protected"]=> array(2) { [0]=> string(4) "_GET" [1]=> string(5) "_POST" } ["_requestUri:protected"]=> string(160) "/Login/login?zone=Asia+regional&period=2010&start+date=&finish+date=&version=no+version&cover_onsale=cover+date&email=sfdsfds&password=fdsfs&submit=Se+connecter" ["_baseUrl:protected"]=> string(0) "" ["_basePath:protected"]=> NULL ["_pathInfo:protected"]=> string(12) "/Login/login" ["_params:protected"]=> array(3) { ["controller"]=> string(5) "Login" ["action"]=> string(5) "login" ["module"]=> string(7) "default" } ["_rawBody:protected"]=> NULL ["_aliases:protected"]=> array(0) { } ["_dispatched:protected"]=> bool(true) ["_module:protected"]=> string(7) "default" ["_moduleKey:protected"]=> string(6) "module" ["_controller:protected"]=> string(5) "Login" ["_controllerKey:protected"]=> string(10) "controller" ["_action:protected"]=> string(5) "login" ["_actionKey:protected"]=> string(6) "action" } loginAction
mais dans l'URL les paramètres sont passés comme en GET
http://127.1.0.0/Login/login?zone=Asia+regional&period=2010&start+date=&finish+date=&version=no+version&cover_onsale=cover+date&email=sfdsfds&password=fdsfs&submit=Se+connecter
enfin, quand je fais un test $request->isGet() à la place de Post, alros
je vais un message d'erreur 'La page n'est pas redirigée correctement'
Dois-je paramètrer le boostrap avant ?
Instancier le FRONT CONTROLLER (et ou ?)
merci
yonamoke
Hors ligne
Désolé, je ne sais pas, je passe la main ..
Par contre pour tes var_dump ou print_r, copie/colle le code source plutot que ce qui s'affiche sur ton navigateur, tu verras c'est plus lisible
Hors ligne
hello,
je vais poser ma question différemment.
Pour après une saisie, je n'ai dans ma Zend_Controller_Request_Http Object que :
Zend_Controller_Request_Http Object ( [_paramSources:protected] => Array ( [0] => _GET [1] => _POST ) [_requestUri:protected] => /Login/Index [_baseUrl:protected] => [_basePath:protected] => [_pathInfo:protected] => /Login/Index [_params:protected] => Array ( [controller] => Login [action] => Index [module] => default ) [_rawBody:protected] => [_aliases:protected] => Array ( ) [_dispatched:protected] => 1 [_module:protected] => default [_moduleKey:protected] => module [_controller:protected] => Login [_controllerKey:protected] => controller [_action:protected] => Index [_actionKey:protected] => action )
sans que la propriété stockée dans $this->getRequest()->isPost() soit à true au lieu de false ?
qui peut m'aider ?????
merci
Hors ligne
hello,
j'ai trouvé !
En fin de compte, ma fonction isPost se terminait par
$this->_helper->redirector ( 'Index', 'Index' );
Quand je l'enlève, le test se fait bien. Bizzare !
Qui peut me dire :
1. Pourquoi cette ligne bloquait tout sans le dire
2. Comment faire une redirection vers le contrôlleur d'origine depuis cette action ?
merci
Yonamoke
Hors ligne
Bonjour tout le monde,
peut être que cela aidera les débutants comme moi :
1. Pour aller dans un autre controller :
$this->_forward('action', 'controller');
2. Pour aller dans le même controller :
$this->_redirect('action');
voila
on peut fermer le post !
merci
Hors ligne
Pour les erreurs: est tu sur d'afficher les erreurs? As tu fait un controller pour tes erreurs? as tu fait des try catch?
Pour info en + : $this->renderScript change la vue.
Et les sujets ne sont pas cloturer, c'est à toi de mettre un résolu dans le titre (LIRE LES MESSAGES EPINGLES QUI SE NOMME GENERALEMENT REGLES A LIRE!!!!!!!!!!!!!!!!!)
Hors ligne
pas envie de répondre face à ce manque de courtoisie ...
Hors ligne