Door
Jelmer -
op 04-07-2010 13:22
gewijzigd op 27-07-2010 14:31
3.292 views
Die dubbele posts worden toch meestal veroorzaakt doordat men alsmaar op [back] drukt? Zou je dat niet heel simpel kunnen voorkomen door ieder formulier te voorzien van een veldje nonce met een waarde van [php]uniqid[/php], en dat met de post op te slaan in de database in een kolom met een UNIQUE constraint? Dan kan je browser nooit meer hetzelfde formulier 2x opsturen.
Een oplossing zoals bij de vBulletin forums lijkt me ook nog redelijk voor de hand liggend..?
Wanneer men opnieuw post in hetzelfde topic en je had al als laatste gepost dat er geen nieuwe post bij komt maar je vorige post automatisch geëdit wordt en het nieuwe deel er aan toegevoegd wordt..?
?Onbekende gebruiker
18-07-2010 19:48
Je krijgt ook dubbele posts als je te vaak op reageren drukt, of te snel ververst. Weet niet of jou oplossing daarvoor werkt Jelmer.
Gewoon inderdaad een soort van "token" toevoegen aan alle goevoelige forms. Die meesturen in de POST. De laatst gebruikte token kan je dan opslaan in de $_SESSION array, en kijken of de gestuurde hetzelfde is als in de SESSION array dan weet je dat het een dubbelpost is.
uniqid() is uniek per microseconde. Met de more_entropy parameter kan je er zelfs nog een random shit achter zetten mocht je dat nodig vinden..!
Nee, gewoon een anti-bumpsysteem implementeren.. twee vliegen in een klap.
Nee, want dan krijg je een reply met daarin 2x de getikte tekst. (als je het gaat implementeren als in "we bewerken het en zetten de nieuwe tekst er standaard onder")