login  Naam:   Wachtwoord: 
Registreer je!
 Forum

beveiligen tegen dubbele posts

Offline jvs - 31/03/2008 21:44 (laatste wijziging 31/03/2008 21:46)
Avatar van jvsHTML beginner Hallo iedereen,

Ik zit met een probleempje, ik ben bezig aan een upload systeempje nu zou ik er graag voor willen zorgen dat er niet twee keer achter elkaar de zelfde info gepost kan worden. Ik wil dus voorkomen dat als men iets gepost heeft en vervolgens op de refresh knop duwt dat dit nogmaals gepost wordt. Misschien is dit mogelijk doormiddel van het legen van de cache ofzo of is dit onzin?  

alvast bedankt

10 antwoorden

Gesponsorde links
Offline Stijn - 31/03/2008 22:07
Avatar van Stijn PHP expert Je kan controleren tijdens het posten en voor het posten of de laatste post niet uitgevoerd werd door hetzelfde IP adres.
Offline nielsvdwal - 31/03/2008 22:09
Avatar van nielsvdwal PHP gevorderde of een sessie zetten.. als de sessie bestaat dat er dan niet nogmaals gepost kan worden..
Offline Geoffreydv - 05/04/2008 00:40 (laatste wijziging 05/04/2008 00:41)
Avatar van Geoffreydv Nieuw lid ik los dit op met behulp van javascript, na het uitvoeren van alle handelingen na submitten, zet ik

  1. <script>window.location='<dehuidigepagina>';</script>


refreshen of "vorige" drukken submit nu geen 2 keer meer  
Offline Stijn - 05/04/2008 01:30
Avatar van Stijn PHP expert Inderdaad maar als ik 2 keer op vorige druk dan stuurt hij weer de POST data door.
Offline Martijn - 05/04/2008 11:44
Avatar van Martijn Crew PHP maar laatstse post checken is ook niet echt noptie, want stel hij post, iemand anders post, en daarna drukt ie op F5... dan zou je t moeten maken dat ie checkt wat de laatste post is gedaan door jouw, en dan de inhoud van de 2 vergelijken
Offline Grayen - 05/04/2008 12:34
Avatar van Grayen PHP ver gevorderde Doe anders het volgende:

Plaats een hidden input in je formulier met een gegenereerde string. Deze string staat ook opgeslagen in een sessie. Telkens als de pagina wordt bezocht dan wordt die string ververst. Bij het posten moet je dan controleren of de POST waarde van die hidden input overeenkomt met de waarde van de sessie en zo voorkom je dat iemand dubbelpost.
Offline timmie_loots - 05/04/2008 14:25 (laatste wijziging 05/04/2008 14:28)
Avatar van timmie_loots PHP gevorderde In het bestand waarin je de post verwerkt, moet je de gebruiker wegverwijzen (als alles goed gaat) met
  1. header('Location: http://www.website.ext/formverzonden.html');


In "formverzonden.html" (al die namen kun je natuurlijk gewoon veranderen) kun je dan neerzetten dat de boel is geüpload. Op deze manier kan de gebruiker gewoon op F5 drukken zonder dat er opnieuw iets verstuurd wordt.

EDIT:

Deze oplossing lijkt overigens op wat Geoffreydv al stelde. Het probleem daarbij is, zoals ook eerder genoemd door stijn1989, dat twee keer op de vorige knop alsnog dubbel post. Omdat dit op een veel lager niveau gebeurd dan javascript, komt de pagina waar de POST-resultaten naar toe worden gestuurd niet eens in de geschiedenis van de gebruiker.
Offline ctraets - 09/04/2008 19:11
Avatar van ctraets Nieuw lid Er was een script geplaatst om dubbelpost tegen te gaan. Ik kon de url even niet zo snel vinden.
Offline Wim - 09/04/2008 19:24
Avatar van Wim Crew algemeen
nielsvdwal schreef:
of een sessie zetten.. als de sessie bestaat dat er dan niet nogmaals gepost kan worden..


als je je browser even sluit en terug opent wordt de sessie verwijderd
Offline Martijn - 09/04/2008 19:31
Avatar van Martijn Crew PHP ja, maar je post data ook 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s