Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1630 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Empêcher la réactulisation (F5)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Empêcher la réactulisation (F5)

n°2130762
willy54
Posté le 11-03-2012 à 20:43:21  profilanswer
 

Bonsoir,
 
Auriez-vous une solution pour empêcher les réactualisations?
C'est problématique lorsqu'on traite un formulaire.
 
Exemple:
1) j'ai une page formulaire & une page de traitement qui permet l'insertion de données dans une BDD
2) à chaque fois que je fais F5 cela génère une nouvelle insertion

mood
Publicité
Posté le 11-03-2012 à 20:43:21  profilanswer
 

n°2130826
Riokmij
Blink and you're dead
Posté le 12-03-2012 à 10:44:42  profilanswer
 

Empêcher la réactualisation, c'est impossible. Par contre, on peut contourner le problème des insertions multiples assez facilement.
 
L'idée, c'est de séparer le traitement du formulaire (avec les insertions en base de données) de l'affichage du résultat de l'opération. La page de traitement va s'occuper uniquement des accès à la base de données, sans afficher quoi que ce soit, et à la fin, elle fera un redirect vers la page d'affichage du résultat. Comme la page de résultat ne fait aucun traitement, l'utilisateur pourra la rafraichir autant qu'il veut, ça ne changera rien.
 
Je ne suis pas sûr d'être super clair, donc voici un exemple de séquence d'événements :
- on affiche un formulaire (formulaire.php)
- l'utilisateur le rempli, et soumet le formulaire
- on va faire un POST sur la page traitement.php avec les données du formulaire
- traitement.php va insérer/modifier les données en base. Rien n'est affiché
- traitement.php va rediriger (via fonction "header" ) vers la page resultat.php
- resultat.php indique à l'utilisateur que tout s'est bien passé (ou qu'il y a eu des erreurs)
- si l'utilisateur appuie sur F5, ça ne pose pas de problème, vu qu'on est sur une page qui ne modifie rien en base de données

n°2130854
rufo
Pas me confondre avec Lycos!
Posté le 12-03-2012 à 13:01:56  profilanswer
 

+1 pour cette solution, c'est ce que je fais dans mon logiciel de Help-Desk en GPL, Astres (cf ma signature).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2130928
Schimz
Bouge pas, meurs, ressuscite !
Posté le 12-03-2012 à 15:30:35  profilanswer
 

willy54 a écrit :

Auriez-vous une solution pour empêcher les réactualisations?


Jetons :o (token en anglais)
http://forum.hardware.fr/hfr/Progr [...] 4685_1.htm


---------------
çà s'est HFR | Music for the Galaxy
n°2131008
CyberDenix
Posté le 12-03-2012 à 19:34:38  profilanswer
 

Vous lui causez jeton, mais vu son niveau, ça ne doit pas beaucoup lui parler.  :o  
 
Voilà un morceau de code PHP, mon gars :
 

Code :
  1. <?php
  2.  
  3.  
  4. // ...
  5.  
  6. if (!isset($_SESSION['myLastInsertionDateForTheQueryA'])) {
  7.  
  8.  // Do the query A here
  9.  
  10.  // Then set a token for the query A
  11.  $_SESSION['myLastInsertionDateForTheQueryA'] = date('c');
  12.  
  13. }
  14. else {
  15.  
  16.  echo 'Trou\'d\'balle, t\'as déjà fait une insertion en date du '.$_SESSION['myLastInsertionDateForTheQueryA'].'... ';
  17.  echo 'Une fois mais pas deux, hein ?!<br/>';
  18.  
  19. }
  20.  
  21. // ...
  22.  
  23. ?>


Message édité par CyberDenix le 12-03-2012 à 19:37:44

---------------
Directeur Technique (CTO)
n°2131401
willy54
Posté le 14-03-2012 à 18:44:16  profilanswer
 

Merci les gars :) Je test ça dès que j'ai le temps


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Empêcher la réactulisation (F5)

 

Sujets relatifs
empêcher submit formulaire via javascriptEmpecher prise de focus
[URL Rewriting] Empêcher les URL bidonsEmpêcher fermeture Lightbox
hook (global) sur le clavier - empêcher le traitement ultérieurEmpecher le retour a la ligne a certains endroits
Empecher l'erreur lors du chargement du XMLempêcher saisie caractères accentués en PHP
empecher le copier /coller et l'impression.htaccess : empêcher l'exécution sauvage d'un script
Plus de sujets relatifs à : Empêcher la réactulisation (F5)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR