Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PEAR > HTML_quickform
HTML_quickform Forum d'entraide pour la bibliothèque HTML_quickform du framework PEAR, permettant de manipuler des formulaires en PHP. Avant de poster -> tutoriels QuickForm
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/11/2006, 20h09   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 2
Points : 1
Points : 1
Par défaut [QuickForm] Comment afficher une page après validation du formulaire ?

Bonjour,
j'utilise une page (index.php) qui emploie des includes pour afficher les différents éléments structurels de mise en page : header, footer, colonne droite, ... et le contenu principal (form.php). Dans celui-ci j'ai créé un formulaire avec html_quickform. Lorsqu'après avoir effectué les contrôles je tente d'appeler une nouvelle page via un header(location:http//...) je reçois le message "Cannot modify header information - headers already sent by..." ;... normal puisque j'ai déjà écrit du code html : du fait de la structure de la page index mon contenu (form.php) passe toujours après l'écriture de l'en-tête.
Le seul moyen -je pense- de pouvoir parer à cette erreur serait d'utiliser un script distinct (action.php) pour traiter le formulaire une fois soumis :
new HTML_QuickForm('Login', 'post' 'action.php').
Cependant, la documentation pear étant succinte (ou ma compréhension limitée), je ne sais pas comment gérer les réaffichages du formulaire (et sans perdre les données saisies) suite à une détection d'erreurs (ex: nom saisi non présent en bdd).
Quelqu'un peut-il m'aider ?
jpinfotech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2006, 10h37   #2
Membre régulier
 
Homme Joseph Cachico
Chef de projet en SSII
Inscription : mai 2005
Messages : 109
Détails du profil
Informations personnelles :
Nom : Homme Joseph Cachico
Localisation : France

Informations professionnelles :
Activité : Chef de projet en SSII

Informations forums :
Inscription : mai 2005
Messages : 109
Points : 73
Points : 73
Par défaut Exemple criant

Bonjour, voici ce que tu cherche :
ICI
jcachico est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2006, 11h40   #3
Rédacteur
 
Homme
Geek entrepreneur
Inscription : novembre 2004
Messages : 1 035
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Geek entrepreneur

Informations forums :
Inscription : novembre 2004
Messages : 1 035
Points : 1 813
Points : 1 813
Grosso modo l utilisation de quickform se fait comme ceci :

creation du formulaire ($form = new Html_Quickform etc...)

validation du formulaire
si formulaire valide => traitement et éventuellement redirection ensuite, rien n a été affiché avant
si formulaire invalide (ou si pas de submit) => affichage du formulaire
hugo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2006, 13h49   #4
Invité de passage
 
Inscription : novembre 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 2
Points : 1
Points : 1
Par défaut [Résolu]

Merci pur vos réponses.
En fin de compte, je m'en suis tiré en bufferisant les sorties (php ob_start); ci-dessous le sinopsys avec en rouge les modifs qui m'ont permis de résoudre le pb :

Page index
--> ob_start
- Affiche l'en-tête
- Affiche le menu
- Inclut (require_once) le script affichant le formulaire quickform :
Lorsque, une fois le formulaire validé, j'essayais de rediriger vers une autre page cela plantait puisque j'avais déjà écrit avec l'affichage de l'en-tête et du menu.
-> header(location:http//...
- Affiche le bas de page
-> ob_end_flush()
Si vous pensez qu'il y a mieux comme méthode, n'hésitez pas ...
jpinfotech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2006, 15h58   #5
Rédacteur
 
Homme
Geek entrepreneur
Inscription : novembre 2004
Messages : 1 035
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Geek entrepreneur

Informations forums :
Inscription : novembre 2004
Messages : 1 035
Points : 1 813
Points : 1 813
A chacun de voir, personellement j'utilises un moteur de template (Smarty), donc mon template n'est affiché qu'a la fin, ce qui m'évite d'utiliser ob_start.
hugo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h48.


 
 
 
 
Partenaires

Hébergement Web