Bonjour,
J'ai un petit soucis avec le comportement de la fonction validate() dans le package HTML de PEAR.
J'utilise donc HTML_QuickForm pour générer mes formulaires.
A titre de rappel voila un peu l'architecture general de ce type de formulaire :
Code :
- $form = &new HTML_QuickForm("mon_formulaire" );
- /* On construit le formulaire
- .
- .
- .
- .
- */
- /* le valide le formulaire */
- if ($form->validate()) {
-
- /* Action a faire */
-
- }
|
************************
Je vous expose maintenant l'architecture de mes pages :
Un fichier login.php qui est inclus dans chaque page de mon site qui sert a gerer l'identification, voici son fonctionnement :
Code :
- session_start();
- if (!isset($_SESSION["LOGIN"])) {
- $formu = &new HTML_QuickForm("loginForm" );
- /* On construit le formulaire a 2 champs */
- if ($formu->validate()) {
- /* On test les champs */
- (1)
- $_SESSION["LOGIN"] = $formu->login;
- }
- else {
- /* On affiche le formulaire via le gestionnaire de template smarty */
- }
- }
|
Voici maintenant une page contenant un autre formulaire egalement générer via HTML_QuickForm et proteger via le fichier login.php précedent :
(On l'appelera page.php)
Code :
- require_once "login.php";
- if (isset($_SESSION["LOGIN"])) {
- $form = &new HTML_QuickForm("MonAutreFormu" );
- /* On construit le formulaire */
- if ($form->validate()) {
- (2)
- /* On traite le formulaire */
- }
- else {
- /* On l'affiche via smarty toujours*/
- }
- }
|
Ainsi quand j'appelle page.php et que je ne suis pas logué, la page login.php s'affichera me demandant mon identification.
************************************
Voila donc mon architecture.
Mon probleme maintenant. Quand je valide le formulaire de login.php, je rentre donc dans (1). Mais ce qu'il l'est moins c'est que je rentre egalement dans (2). Ainsi le formulaire de page.php est traité alors qu'il ne devrait pas.
Donc est-ce normal et faut il que trouve une astuce pour palier a ce comportement ou ai je fais une erreur quelque part... bref merci de me donner un coup de patte.