Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-07-2010 22:58:04

yonamoke
Membre
Date d'inscription: 29-07-2010
Messages: 10

validation d'un formulaire

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


Code:

    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

 

#2 30-07-2010 08:17:48

TeChn4K
Membre
Date d'inscription: 29-07-2010
Messages: 12

Re: validation d'un formulaire

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 :

Code:

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

 

#3 30-07-2010 14:06:15

yonamoke
Membre
Date d'inscription: 29-07-2010
Messages: 10

Re: validation d'un formulaire

Merci, mais il n'y a pas de différence effectivement.

Cela vient de

Code:

        $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 :

Code:

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

Code:

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

 

#4 30-07-2010 16:42:09

TeChn4K
Membre
Date d'inscription: 29-07-2010
Messages: 12

Re: validation d'un formulaire

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 wink

Hors ligne

 

#5 30-07-2010 18:08:50

yonamoke
Membre
Date d'inscription: 29-07-2010
Messages: 10

Re: validation d'un formulaire

hello,

je vais poser ma question différemment.

Pour après une saisie, je n'ai dans ma Zend_Controller_Request_Http Object que :

Code:

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

 

#6 30-07-2010 18:22:10

yonamoke
Membre
Date d'inscription: 29-07-2010
Messages: 10

Re: validation d'un formulaire

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

 

#7 31-07-2010 14:25:18

yonamoke
Membre
Date d'inscription: 29-07-2010
Messages: 10

Re: validation d'un formulaire

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

 

#8 02-08-2010 12:03:22

Sishare
Membre
Date d'inscription: 09-02-2010
Messages: 89

Re: validation d'un formulaire

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

 

#9 03-08-2010 17:06:47

yonamoke
Membre
Date d'inscription: 29-07-2010
Messages: 10

Re: validation d'un formulaire

pas envie de répondre face à ce manque de courtoisie ...

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