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

  FORUM HardWare.fr
  Programmation
  PHP

  Page précédente : éviter la resoumission

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Page précédente : éviter la resoumission

n°2199902
domi_bu
Posté le 11-08-2013 à 12:45:47  profilanswer
 

Bonjour
 
J ai lu pas mal de forums sur mon pb, mais sans jamais avoir trouve la bonne réponse à ma problématique.
 
J ai une page (page1.php) qui contient un formulaire en "post" et dont la cible est elle même. À la soumission du formulaire je fais les contrôles nécessaires et si tout est ok je fais une requête sql et je construis le tableau avec le résultat de la requête. Donc la page1.php contient à la fois le formulaire et le tableau de résultats.
 
De ce tableau je peux ensuite appeler une page2 qui affiche le détail d une ligne. Tout fonctionne.  
 
Le problème est que à partir de la page2, j aimerai pouvoir revenir en arrière pour réafficher le résultat du tableau. Or systématiquement j ai le message qui demande de confirmer le ré envoi du post. Et si l utilisateur confirme alors ça refait la requête sql et ça réaffirme tout etc.... Ça fonctionne bien sur mais ce n' est pas très optimisé.  
 
Mes questions :
- comment a partir de la page2, re afficher cette page1 sans que ce message de confirmation de ré envoi du post ?
- comment dans la page1, ne pas refaire la requête sql à chaque fois que l utilisateur demande à revenir à la page précédente ?
 
Je pense devoir utiliser les sessions et la redirection , mais j ai pas tout compris les différents topics que j ai pu trouver.  
 
Donc je suis preneur d une bonne explication sur le sujet. Merci d avance pour vos réponses.
 
Dominique

mood
Publicité
Posté le 11-08-2013 à 12:45:47  profilanswer
 

n°2199911
Volkhen
Posté le 11-08-2013 à 17:57:24  profilanswer
 

Voici la plus simple méthode : http://fr.wikipedia.org/wiki/Post-Redirect-Get
 
Page 1 envoie le formulaire à page 2.
Page 2 reçoit le formulaire et stocke les données puis envoie un header de redirection (code 302) vers page 1 en réponse.
Page 1 affiche le tableau et toujours le formulaire.


---------------
Main/Alt1/Alt2/Alt3
n°2199912
domi_bu
Posté le 11-08-2013 à 19:02:55  profilanswer
 

Bonsoir volkhen
 
Merci pour la réponse. J avais déjà vu ce Wikipédia, mais mon souci est un peu différent. La page2 que tu cites n est pas la page2 que je cite.
 
La page2 que je cite est une page appelée à partir du tableau de la page1. Ce tableau à été construit suite à un post de formulaire de page1. Mon souhait est que quand l utilisateur est sur la page2, et qu il demande à revoir cette liste de la page1 , et bien que le formulaire ne se resoumet pas mais surtout que la page1 ne relance pas de nouveau la requête sql, car c'est déjà fait.
 
Est ce plus clair ?
 
En tout cas merci d avoir pris le temps de répondre. Dominique

n°2199913
domi_bu
Posté le 11-08-2013 à 19:04:30  profilanswer
 

Ou alors peut être vaut il mieux passe en get ?

n°2199918
Volkhen
Posté le 11-08-2013 à 21:52:55  profilanswer
 

Changez page 2 par page 1bis dans mon post. Dans tous les cas, le plus simple est d'ajouter un script en plus.
Un truc du genre :
 
page1.php

Code :
  1. <?php
  2. $table = getData();
  3. ?>
  4. <table>
  5. <?php foreach($table as $row):?>
  6. <tr>
  7.   <td><a href="page2.php?id=<?php echo $row['id']?>">Détail</a></td>
  8. </tr>
  9. <?php endforeach;?>
  10. </table>
  11. <form method="post" target="page1bis.php">
  12. </form>


 
dans page1bis.php :

Code :
  1. <?php
  2. if(!empty($_POST)){
  3.   // Enregistrer les données
  4. }
  5. header('Location: page1.php');
  6. exit;


---------------
Main/Alt1/Alt2/Alt3
n°2199924
sltpaulo
Posté le 12-08-2013 à 09:29:52  profilanswer
 

Ce que tu peux faire aussi, c'est stocker ta page précédente (apc par exemple) et créer un bouton qui charger ta précédente page ainsi que ton javascript

n°2199948
rufo
Pas me confondre avec Lycos!
Posté le 12-08-2013 à 11:37:40  profilanswer
 

Tu peux faire un système de jeton (token) valable qu'une fois. Une fois le formulaire avec le jeton correctement traité, celui-ci n'est plus valide, donc interdit tout re-post...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta

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

  Page précédente : éviter la resoumission

 

Sujets relatifs
problème avec article dans la page membrecomment empecher l'appel d'une page php avec son url?
[Perl] Eviter les commandes systemProbleme page flexible
[htaccess]Redirection de page avec accentOuvrir un fichier excel sur la même page
Reader Adobe PDF en local sur page HTMLCtrl+ affecté à un bouton sur page HTML
Page php pour autoriser tous types de vidéos dans les forums phpbb[vba] numéro de la page de la cellule sélectionnée
Plus de sujets relatifs à : Page précédente : éviter la resoumission


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