IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Ouverture d'une page aprés validation d'un formulaire


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Ouverture d'une page aprés validation d'un formulaire
    Bonsoir tout le monde,

    Voici mon petit problème. J'ai un formulaire dans lequel j'effectue un certain nombre d'action. Lorsque je clic sur validé, je souhaite qu'il m'exécute tout mes requête, puis qu'il me ferme le formulaire, pour m'afficher une autre page web. Ces cette dernière partie que je n'arrive pas à faire.

    Donc comment je peu faire pour fermer une page et en ré ouvrir une autre ?

    D'avance merci.

    Ludo

  2. #2
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    salut,
    tu peux utiliser la fonction header :http://de3.php.net/manual/fr/function.header.php
    tu places ce code quand toutes tes requêtes sont terminées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: http://tapage.php");

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    J'y ai bien pensé, mais il me met ce message d'erreur

    Warning: Cannot modify header information - headers already sent by (output started at c:\**\page.php:9)

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 353
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 353
    Points : 15 699
    Points
    15 699
    Par défaut
    Citation Envoyé par civodultrebor37
    J'y ai bien pensé, mais il me met ce message d'erreur
    tu trouveras comment corriger cette erreur dans la FAQ là :
    http://php.developpez.com/faq/?page=...s_already_sent

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Voici une liste (non exhaustive) de ce qui cause l'envoi des en-têtes :

    * un "echo"
    * un affichage hors PHP (c'est à dire de l'HTML en dehors du code)
    * un ou plusieurs retours chariots avant la balise "<?php"
    * une fonction qui rencontre une erreur et affiche un message (par exemple l'utilisation de la fonction "mysql_connect" avec de mauvais paramètres)

    Tout ceci ne doit pas être fait avant l'utilisation de fonctions qui modifient les en-têtes comme "header" ou "session_start" entre autres.
    Mais alors cela ne sert à rien. Car pour ma part je veux faire ma redirection une fois mes requête exécuter. Donc il y a du code avant. Dans ce cas comment faire ?

  6. #6
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    quil y ait "du code" c'est pas un soucis

    faut juste pas que ton code envoie des infos au navigateur

    si après validation du formulaire, le script ouvre une page PHP qui ne fait que traiter les données saisies et les enregistrer en BdD, y a rien besoin d'afficher dans tout ça, donc à la suite tu mets un header sans rencontrer de problème

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    En fait je me suis mal expliqué. J'ai un formulaire et le traitement dans le même formulaire. Mais à la fin du traitement je souhaite qu'il m'ouvre une autre page PHP, tout en me fermant celle ouverte.

    Mais quand je place mon header, il me bloc.

  8. #8
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    ben normal, si t'as affiché le formulaire avant, t'en as envoyé pas mal de l'HTML au navigateur !
    donc pas moyen
    si tu veux utiliser le header, une règle, rien transmettre avant, point barre

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Bon j'ai trouvé une solution en passant par JS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<script>\r";
              echo "window.location.href=\"listeclientparticulier.php\";\r";
              echo "</script>\r";
    Si vous avez une autre méthode je suis preneur.

    Merci à vous tous pour votre aide.

    Ludo

  10. #10
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    et si l'utilisateur a désactivé JS ?

    un site doit être fonctionnel sans JS avant que tu ne rajoutes cette couche côté client

    si tu tiens absolument à tout faire en une page, fais comme ça :

    est ce qu'on a validé le formulaire ?
    - non => afficher formulaire
    - oui => est ce que les valeurs saisies sont correctes ?
    -- non => afficher le formulaire et indiquer une erreur
    -- oui => traiter les données du formulaire puis redirection avec header(...);

    pour l'affichage du formulaire, mets le code dans une fonction
    comme ça, si le gars valide le formulaire et uq'il y a pas d'erreur, tu n'affichera rien, le header passera

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par civodultrebor37
    Bonsoir tout le monde,

    Voici mon petit problème. J'ai un formulaire dans lequel j'effectue un certain nombre d'action. Lorsque je clic sur validé, je souhaite qu'il m'exécute tout mes requête, puis qu'il me ferme le formulaire, pour m'afficher une autre page web. Ces cette dernière partie que je n'arrive pas à faire.

    Donc comment je peu faire pour fermer une page et en ré ouvrir une autre ?

    D'avance merci.

    Ludo

    Je vois pas où est le problème....
    Tu faits ta première page qui traite tes actions est contient ton formulaire.
    Tu soumets ton formulaire sur une autre page qui execute tes requêtes et contient ta page web de chute....

  12. #12
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    déjà proposé
    s'il a pas relevé, je suppose que c'est pasqu'il veut tout faire sur une page

    Citation Envoyé par Dia_FR
    si après validation du formulaire, le script ouvre une page PHP qui ne fait que traiter les données saisies et les enregistrer en BdD, y a rien besoin d'afficher dans tout ça, donc à la suite tu mets un header sans rencontrer de problème

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/07/2014, 09h35
  2. [HTML 4.0] Ouverture d'un popup après validation d'un formulaire puis retour à la page d'accueil
    Par ybezier dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 25/07/2010, 14h43
  3. [PHP-JS] rechargement d'une page après validation
    Par illight dans le forum Langage
    Réponses: 7
    Dernier message: 16/05/2007, 11h55
  4. Actualiser une page après validation form
    Par toffff dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/04/2007, 18h48
  5. [PEAR][HTML_QuickForm] Comment afficher une page après validation du formulaire ?
    Par jpinfotech dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 27/11/2006, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo