peut on empecher l'envoi du meme formulaire plusieurs fois?

Petit nouveau ! | 3 Messages

15 janv. 2006, 16:46

bonne année et salut à tous ce qui passeront par là!

un esprit frais pourra m'aider car je chauffe lol:
je vous explique j'ai tendance à renvoyer le formulaire sur la meme page mais le probleme et le suivant comme sur cette meme page j'ai des requetes forcement quand je rafraichis ma page je relance les requetes ce que je ne veux pas faire!

j'ai pensé à faire une redirection apres avoir lancé mes requetes mais je voudrais savoir si quelqu'un n'a pas une solution autre que celle ci
car elle me fais modifier beaucoup de page !

j'espere que quelqu'un qui a racontré le meme probleme ou pas pourra m'aider

Mammouth du PHP | 19672 Messages

15 janv. 2006, 16:52

Faudrait voir un peu de code pour avoir une vague idée de ce que tu veux faire.

Je te signale également la présence d'un tuto sur les formulaires dans la FAQ, tu y trouveras peut-être des éléments de réponse.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 3 Messages

15 janv. 2006, 21:48

je prend un exemple simple voici le code suivant contenant un formulaire qui est envoyé à la meme page qui traitera les requetes vers une base de données.
<html>
<head>
<title>Une enquete web</title>
</head>
<body>
<?php
      if(isset($_post["quantite"]) && ($_post["quantite"]>0"")  && ($_post["quantite"]<10"") 
          //ici j'envois les requetes vers une base sql pour mettre a jour ma commande
?>
<form action="<?php echo php_self; ?>"  method"post"> 
<input type="text" name="quantite">
<input type="submit" value="envoyer">
</form>
</body>
</html>
mon probleme est que apres avoir valider mon formulaire et mis a jour ma base si je fais simplement actualiser dans le navigateur je relance la meme page ce qui me fais aussi relancer les requetes

il doit falloir controler le cache mais j'ai beau chercher je ne trouve de solution est ce que quelqu'un peut m'aider car j'ai passer l'apres midi a chercher mais ca ne marche toujours pas!

si je suis sur un site de commerce par exemple si je clique sur actualiser
apres avoir fais un +1 sur une refence dans mon panier je veux pas
qu'en faisant actualiser on refasse encore +1 voilà!
merci

Eléphant du PHP | 353 Messages

15 janv. 2006, 22:43

à la fin de ta function d'envoye , tu peux mettre un unset($_POST) !ou $_GET suivant ta methode !!

Dis moi si ca fonctionne car j'ai pas testé lol ;)

Mammouth du PHP | 768 Messages

15 janv. 2006, 23:45

Pour ma part, les requêtes ne sont jamais effectuées sur la même page que le formulaire.
Le formulaire envoi les données vers un script qui les traitent et redirige l'utilisateur immédiatement avec header()
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

tanolapin re
Invité n'ayant pas de compte PHPfrance

16 janv. 2006, 12:02

alors pour ce qui est de unset($_post ["mes variables"] ca peut pas marcher car mon formulaire reste operationnel donc en rafraichissant j'ai toujours le meme probleme.

et pour ce qui est d'envoyer les formulaires à une page executant les requetes et ferait des header de redirection, cela me fais revoir tout mon site mais c'est vrai que c'est une solution.

quelqu'un qui sait manipuler le cache doit pouvoir m'apporter la solution
j'espere que cette personne va passer par là parce que je suis dans la m...

merci encore

Mammouth du PHP | 1776 Messages

16 janv. 2006, 14:34

http://www.phpfrance.com/forums/voir_su ... riable.php
Essaie cela...
Il avait à peu près le même problème avec un caddie, et avec quelques lignes de code et une dose de logique (en poudre de préférence), on a melangé tout ça et ça a fait des chocapic (je m'éloigne là, non ?)
Bref, ce sujet t'apportera la réponse, il suffit de l'adapter quelque peu à tes besoins :wink: