Ik heb momenteel mijn html form en php code in één bestand staan,
maar als ik de pagina nu vernieuw,
voert hij de actie dat ik heb opgegeven opnieuw uit, hoe kan ik dit voorkomen?

vraag bij post
-
-
-
je script Post aanvraag sluiten na het uitvoeren van je script
je kan dit doen met exit(); -
je script Post aanvraag sluiten na het uitvoeren van je script
je kan dit doen met exit();Dat heeft natuurlijk geen zin als de pagina opnieuw word geladen. Dan wordt de connectie gewoon weer opgezet.
Wat je kan doen is checken of het formulier zojuist is verzonden. (Of in de laatste 5 minuten)
Het ligt eraan waar het formulier voor dient. -
-
ik heb even rond gekeken en meeste geven het advies om een redirect na de posting te doen.Zelf zou ik, zoals Victor zei, een check doen naar het laatst ingevoerde of een bepaalde tijdslimiet.
Een redirect vind ik zelf niet echt gebruikersvriendelijk omdat de bezoeker gelijk wordt doorgestuurd naar een andere pagina zonder dat hij daarvan iets weet. -
Alleen is het in een spel en moet het formulier veel verzonden worden.
-
Wat is de functie van het formulier?
-
Je moet je afvragen of het erg is dat het formulier meerdere malen wordt verzonden bij een refresh, want dit zijn browser instellingen en zijn niet tegen te gaan. Na een post request krijg je in Chrome bijv. ook de vraag of je de post data opnieuw wilt verzenden.
Anders zou je inderdaad checks moeten bouwen d.m.v. een tijd of token. Redirect kan ook maar is voor de gebruiker irritant.
-
Bij een rederict kan je nog altijd terug gaan en terug bevestigen. Gewoon een tijd opzetten.
-
ik ga het gewoon zo houden
-
Wat ik in jouw geval zou doen, is nadat het form gesubmit is en deze verwerkt is, een header plaatsen die de webbrowser naar een andere pagina laat leiden. Je zou eventueel via sessies data kunnen 'onthouden' of in de url plaatsen. De pagina waar je de webbrowser dan heen laat gaan, kan gewoon naar het zelfde formulier. Zo verander je de POST request die de browser uitvoert in een GET request. Als iemand dan de pagina refresht, dan refresht hij / zij de GET request, en niet de POST request.
Simpel voorbeeld 'voorbeeld.php':
PHP
Toon Meer<?php session_start (); if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (!empty ($_POST['data'])) $_SESSION['data'] = $_POST['data']; header ("Location: voorbeeld.php"); exit; } ?> <?php if (!empty ($_SESSION['data'])) echo "Geposte-data: " . $_SESSION['data'] . "<br /><br />"; ?>
Participate now!
Heb je nog geen account? Registreer je nu en word deel van onze community!