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

PHP & Base de données Discussion :

Comment empêcher le renvoi d'un formulaire après clic sur rafraichir


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 270
    Points : 270
    Points
    270
    Par défaut Comment empêcher le renvoi d'un formulaire après clic sur rafraichir
    Bonjour,

    j'ai une page qui comprend un formulaire qui insère donc des infos dans ma bd mysql, jusque là, rien de compliqué.
    Après avoir cliqué sur le bouton "submit", les données sont bien insérées, génial !!
    Si je clique sur le bouton actualiser du naviguateur, les données sont à nouveau insérées.

    Y a t'il un moyen d'empêcher cela? peut être en détruisant les variables $_POST['machin'] ???

  2. #2
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Avec les sessions par exemple.

    Tu set une variable de session au moment de l'insertion et tu l'efface sur la page qui permet d'acceder à cette insertion (avant de poster donc)

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ou ce qui est faisable c'est de faire une redirection vers la même page lorsque l'insertion a bien lieu. Ca retirera en mémoire l'envoi du formulaire et donc évitera aussi l'ajout de doublons

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 270
    Points : 270
    Points
    270
    Par défaut
    ok,

    question stupide, pour la redirection? comment ça marche?

    j'ai essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    header(
             "Status: 301 Moved Permanently", false, 301);
    header(
    	"Location: index_employe.php");
    exit();
    mais il n'apprécie pas trop et je me retrouve avec une erreur de ce genre :
    Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\dvd_post2\index_employe.php:9) in C:\wamp\www\dvd_post2\index_employe.php on line 507
    merci

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ceci se produit quand tu as déjà défini un header. Pour régler ce soucis il faut faire comme il est expliqué ici : Explications et correction de l'erreur 'headers already sent'

    Si tu peux pas modifier ton code, jette un oeil à ceci : Comment faire une redirection ?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 270
    Points : 270
    Points
    270
    Par défaut
    ok d'accord, par contre, je ne vois comment je peux faire pour placer correctement la fonction header(..)

    pour bien elle devrait être en début de page, avant les premières balises html?
    or si je fais ça, le reste du code php qui se trouve plus bas ne s'exécutera jamais et l'insertion n'aura jamais lieu...

  7. #7
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    En fait il faut le mettre avant tout code html. Si ton code php contient aucun code html alors tu peux le mettre,mais si tu ne peux pas faire autrement utilise une autre solution

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 270
    Points : 270
    Points
    270
    Par défaut
    je te remercie pour tes réponses...
    je vais essayer de me débrouiller autrement

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/09/2008, 20h23
  2. Réponses: 5
    Dernier message: 06/02/2008, 04h38
  3. Comment empécher l'affichage de 2 formulaire identique
    Par AndreDvl dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/12/2007, 21h46
  4. Réponses: 1
    Dernier message: 04/06/2006, 00h35
  5. Réponses: 4
    Dernier message: 18/10/2005, 23h22

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