|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 2 ![]() |
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 ? |
|
|
00
|
|
|
#3 |
![]() ![]() Geek entrepreneur Inscription : novembre 2004 Messages : 1 035 ![]() |
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 |
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 2 ![]() |
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.- Affiche le bas de page -> ob_end_flush() Si vous pensez qu'il y a mieux comme méthode, n'hésitez pas ... |
|
|
00
|
|
|
#5 |
![]() ![]() Geek entrepreneur Inscription : novembre 2004 Messages : 1 035 ![]() |
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.
|
|
00
|
Copyright © 2000-2012 - www.developpez.com