[php/mysql/Forms] Na F5 nog een keer in de DB

Pagina: 1
Acties:

  • PostbodeSiemen
  • Registratie: Maart 2000
  • Laatst online: 19-08-2024
Probleempje,
Heb een enquete form gemaakt met alles op 1 pagina.
pagina laadt en dan:
code:
1
2
3
4
5
6
if (niks) 
    -> show form
if (submit && !valid)
    -> show form met foutmelding
if (submit && valid)
    -> gooi alles in database

Als hij nu alles in de database heeft geknikkerd en je drukt op refresh/F5 dan gooit hij alles er weer in en dat is niet de bedoeling.

Nu kan ik hem wel naar een andere pagina doorsturen maar als je dan op back drukt heb je hetzelfde probleem.
Weet iemand hier een oplossing voor?

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
code:
1
2
3
4
5
6
7
8
if (niks) 
    -> show form
if (submit && !valid)
    -> show form met foutmelding
if (submit && valid)
    -> gooi alles in database
    -> stuur de gebruiker naar een andere pagina m.b.v.
     header ("Location: bedankt.html");

Op deze manier kan je op back en forward drukken wat je wilt, het wordt niet opnieuw opgeslagen.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • Ignoramus
  • Registratie: December 2001
  • Laatst online: 04-09 14:35
Laat de ingevulde waardes onthouden, en controleer of die nog niet in de database staan, zo nee dan naar database schrijven, zo ja dan niet/foutmelding

Bij IT-ers gaat alles automatisch, maar niets vanzelf Workstation Server


  • PostbodeSiemen
  • Registratie: Maart 2000
  • Laatst online: 19-08-2024
Op woensdag 29 mei 2002 00:04 schreef bigtree het volgende:
code:
1
2
3
4
5
6
7
8
if (niks) 
    -> show form
if (submit && !valid)
    -> show form met foutmelding
if (submit && valid)
    -> gooi alles in database
    -> stuur de gebruiker naar een andere pagina m.b.v.
     header ("Location: bedankt.html");

Op deze manier kan je op back en forward drukken wat je wilt, het wordt niet opnieuw opgeslagen.
Dat werkt ook eigenlijk wel best ook denk ik. Je kan nog wel op back drukken en nogmaals op SUBMIT, maar dat soort abuse verwacht ik eigenlijk niet.

  • Ignoramus
  • Registratie: December 2001
  • Laatst online: 04-09 14:35
Ik weet niet waar het voor is, maar als iemand anders dan jijzelf gebruik van maakt is de kans groot dat het wel uit onwetendheid of kwaadaardigheid wel gebeurd, en dan heb je een probleem.
Op woensdag 29 mei 2002 00:10 schreef PostbodeSiemen het volgende:

[..]

Dat werkt ook eigenlijk wel best ook denk ik. Je kan nog wel op back drukken en nogmaals op SUBMIT, maar dat soort abuse verwacht ik eigenlijk niet.

Bij IT-ers gaat alles automatisch, maar niets vanzelf Workstation Server


  • PostbodeSiemen
  • Registratie: Maart 2000
  • Laatst online: 19-08-2024
't is een enquete bij het bedrijf waar mijn vriendin afstudeerd. Ik denk dat ik er vanuit kan gaan dat ze het wel een beetje serieus nemen en niet gaan zitten zieken.

Ben ondertussen toch nog ff aan het bouwen dat hij controleert of er al niet een keer iets is ingevuld.

  • Ignoramus
  • Registratie: December 2001
  • Laatst online: 04-09 14:35
Mijn ervaring is dat het wel gebeurd. Per ongeluk als je het ze niet uitlegt. En als je het ze wel uitlegt gaan ze het proberen. Makkelijkste is om er dus gewoon rekening mee te houden
Op woensdag 29 mei 2002 00:15 schreef PostbodeSiemen het volgende:
't is een enquete bij het bedrijf waar mijn vriendin afstudeerd. Ik denk dat ik er vanuit kan gaan dat ze het wel een beetje serieus nemen en niet gaan zitten zieken.

Ben ondertussen toch nog ff aan het bouwen dat hij controleert of er al niet een keer iets is ingevuld.

Bij IT-ers gaat alles automatisch, maar niets vanzelf Workstation Server


  • PostbodeSiemen
  • Registratie: Maart 2000
  • Laatst online: 19-08-2024
Heb het script al aangepast. Als er nu eenmaal wat is gesubmit met een bepaalde logincode kan het niet nog een keer.

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Hou wel rekening met het volgende (en dit overkomt mij persoonlijk wel eens): Je hebt een formulier ingevuld, je drukt op Submit. Dan zie je dat je vergeten bent een veld in te vullen; je ramt op Esc, vult het veld in en binnen 3 seconden druk je weer op Submit.

Wat nu?

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • Ignoramus
  • Registratie: December 2001
  • Laatst online: 04-09 14:35
Op woensdag 29 mei 2002 00:25 schreef bigtree het volgende:
Hou wel rekening met het volgende (en dit overkomt mij persoonlijk wel eens): Je hebt een formulier ingevuld, je drukt op Submit. Dan zie je dat je vergeten bent een veld in te vullen; je ramt op Esc, vult het veld in en binnen 3 seconden druk je weer op Submit.

Wat nu?
Maak nieuwe tabel in database. Lees hoogste nummer -> plus een -> schijf terug in database en geef dit nummer mee als hidden field in het formulier, schijf dit bij he submitten weer weg in de database in de tabel met antwoorden uit enquete als het nummer nog niet bestaat en wel in de tabel.

edit: iets leesbaarder gemaakt

Bij IT-ers gaat alles automatisch, maar niets vanzelf Workstation Server


  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Op woensdag 29 mei 2002 00:34 schreef Ignoramus het volgende:

[..]

Maak nieuwe tabel in database. Lees hoogste nummer -> plus een -> schijf terug in database en geef dit nummer mee als hidden field in het formulier, schijf dit bij he submitten weer weg in de database in de tabel met antwoorden uit enquete als het nummer nog niet bestaat.
Best een goeie oplossing. Maar nu kunnen er wel records in je tabel zitten waar de antwoorden niet zijn ingevuld. Dan werd alleen het formulier opgevraagd, maar niet gesubmit.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • Ignoramus
  • Registratie: December 2001
  • Laatst online: 04-09 14:35
Op woensdag 29 mei 2002 00:41 schreef bigtree het volgende:

[..]

Best een goeie oplossing. Maar nu kunnen er wel records in je tabel zitten waar de antwoorden niet zijn ingevuld. Dan werd alleen het formulier opgevraagd, maar niet gesubmit.
Kost alleen beetje schijfruimte. Is alleen weer niet een perfecte oplossing: sluit wel de 'per ongelukjes' uit, maar gebruikertje kan nummertje wat je krijgt gaan ophogen en dus wel weer in database gaan schrijven, kost alleen stuk meer moeite. Als je gaat controleren of het nummertje al uitgegeven is, kan dit aan een andere gebruiker zijn. Nummer koppelen aan ip adres helpt.

Bij IT-ers gaat alles automatisch, maar niets vanzelf Workstation Server


  • bruk
  • Registratie: Maart 2001
  • Laatst online: 07-04-2021
Als je echt abuse wil voorkomen log je het ip adres meteen ook in de tabel, die zet je op unique value, dan kan je refreshen wat je wil, maar hij voegt hem niet meer toe...

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Sjeesz wat een moeilijk gelul allemaal.
Gebruik een session :z

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Sowieso zou ik inderdaad IP loggen danwel cookie zetten danwel allebei, maar volgend mij scheelt het al als je in je html voor de form method="post" gebruikt (heb nml het vermoeden dat je dat niet gedaan hebt).

  • Dennis
  • Registratie: Februari 2001
  • Nu online
2:
Sowieso zou ik inderdaad IP loggen danwel cookie zetten danwel allebei, maar volgend mij scheelt het al als je in je html voor de form method="post" gebruikt (heb nml het vermoeden dat je dat niet gedaan hebt).
Jewel, want er wordt gezegd dat back/forward goed gaat, alleen f5 niet.

  • Ignoramus
  • Registratie: December 2001
  • Laatst online: 04-09 14:35
Op woensdag 29 mei 2002 01:04 schreef Bruk het volgende:
Als je echt abuse wil voorkomen log je het ip adres meteen ook in de tabel, die zet je op unique value, dan kan je refreshen wat je wil, maar hij voegt hem niet meer toe...
Maar dan kunnen niet meerdere mensen de enquete op 1 pc invullen. Wat bij DHCP? Of als een kwaadwillende persoon een andere pc gebruikt

Bij IT-ers gaat alles automatisch, maar niets vanzelf Workstation Server


  • Birk
  • Registratie: Maart 2002
  • Laatst online: 15-02-2019
Misschien nog een idee, net zoals hier bij Tweakers de "window" afsluiten na het invullen...

Op deze manier kan je niet Refreshen en Back etc...

Maybe it Helps!

Dyslexie | Linux | MoZilla | OpenOffice

Pagina: 1