Vraag & Antwoord

Webprogrammeren & scripting

[php/HTML} formulierwaarden legen na verwerken

5 antwoorden
  • Ik heb een formulier die na het invullen informatie aan de DB doorgeeft. Daarna laat hij een bericht zien welke waarden verwerkt zijn. Nu ben ik erachter gekomen dat als ik de resultatenpagina herlaad, de waarden opnieuw verwerkt worden. Omdat het een administratie-site is, is dit niet de bedoeling. Hoe kan ik na het verwerken van de gegevens in de DB, de waarden van het formulier leeg maken zodat na het herlanden niet nog een keer deze waarden weggeschreven kan worden.
  • even hardop denken: - een "anti-flood" mogelijkheid inbouwen met een cookie. - de referrer opvragen... - het formulier leegmaken zodra er verzonden is. t.
  • - de referrer opvragen... [color=blue:a727110d65]helaas is de referrer niet de meest betrouwbare methode (wordt niet altijd correct meegegeven)[/color:a727110d65] - het formulier leegmaken zodra er verzonden is. [color=blue:a727110d65]Dat maakt natuurlijk niet veel uit. Bij een verversing van de resultaatpagina verstuur je dezelfde request gewoon nog een keer.[/color:a727110d65] Ik probeer ook even hardop te denken: Andere optie (naast de cookie/sessie optie) is om na verwerking van de gegevens in de database een window.location.replace() te doen naar een pagina die de ingevoerde gegevens toont. Herladen van de pagina heeft dan geen gevolgen voor de inhoud van de database en teruggaan naar de verwerkingspagina kan niet meer omdat deze niet voorkomt in de history. Nadeel (??): je maakt gebruik van javascript voor navigatie.
  • Ik neem aan dat de informatie die ingevoerd wordt unieke velden heeft, of dat een combinatie van velden uniek is. Hier kan natuurlijk op gecontroleerd worden, in het geval dat de informatie al toegevoegd blijkt te zijn moet je een melding teruggeven aan de gebruiker. - Bas
  • Redirect is de oplossing ;) [EDIT]of toch niet, je kan dan nog wel Back doen... :oops:, maar met een paar extra headers als Last-Modified-Date+Expires, zou het toch moeten lukken.[/EDIT]

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.