login  Naam:   Wachtwoord: 
Registreer je!
 Forum

meermaals invulformverzenden (met tijdsbeperking)

Offline SchokkaertJ - 13/10/2016 14:33
Avatar van SchokkaertJNieuw lid hoe kan men verhinderen dat men een invulformuliers meerdere malen verzend
binnen een ingestelde tijd (vb 1min)?

via google vind ik wel oploosingen "multiple" maar dat gaat dan zonder tijdsbeperking....

8 antwoorden

Gesponsorde links
Offline Thomas - 13/10/2016 14:51 (laatste wijziging 13/10/2016 14:53)
Avatar van Thomas Moderator Geen oplossing is echt waterdicht, maar je zou kunnen denken aan een controle op IP-adres of iemand verplicht stellen zich eerst te registreren voordat er iets verzonden kan worden.

Dit alles hangt nogal af van de toepassing; waar is het / zijn de invulformulier/en voor bestemd?

En wat is het daadwerkelijke probleem? Wordt het formulier meerdere keren automatisch verzonden door (spam)bots? Dan kan een CAPTCHA of een andere controle wellicht uitkomst bieden?

Of ververst men de pagina na verzenden wat mogelijk resulteert in het nogmaals verzenden van de informatie? In dat geval kan de structuur van je code misschien verbeterd worden.

EDIT: mogelijk is er niet eens sprake van "opzettelijk misbruik" maar zit(ten) je formulier(en) + de afhandeling gewoon onlogisch in elkaar?

Om een beter advies op maat te geven ontbreekt de volgende informatie:
- de toepassing van de formulieren
- het daadwerkelijke probleem, wat is precies het ongewenste gedrag, en wat is de oorzaak hiervan
- of dit zelf geschreven code betreft of uit een pakket komt (in welk geval de oplossingsmogelijkheden mogelijk beperkt zijn)
Offline SchokkaertJ - 13/10/2016 15:33
Avatar van SchokkaertJ Nieuw lid ik heb ergens eens een scriptje gevonden dat via een cookie controleerde hoelang hetgeleden was dat je op deze knop "verzonden" gedrukt had en je pas opnieuw verzenden kon doen na een ingestelde tijd. Helaas kan ik het niet meer vinden.
De code is zelfgeschreven.
Het gaat hem hier om een eenvoudig bestelformulier dat bij de leverancier uit de printer komt, maar doordat men meerdere malen na elkaar drukt op verzenden (bij langdurig wachtijden) komt de bestelling ze soms 3 of 4 maal uit. (broodjes;;;)
Offline Thomas - 13/10/2016 15:47 (laatste wijziging 13/10/2016 17:37)
Avatar van Thomas Moderator
Citaat:
bij langdurige wachttijden

En als je nu een besteller direct terugkoppeling geeft dat hun bestelling verzonden is, of waar komt deze wachttijd vandaan?

Dit lijkt mij dus geen opzettelijk misbruik, maar komt enkel voort uit het feit dat er onduidelijkheid is over de bestelstatus?
Offline nielsvdwal - 14/10/2016 10:36
Avatar van nielsvdwal PHP gevorderde Het lijkt erop dat het formulier, na het klikken op 'bestelling plaatsen' blijft staan zonder feedback naar de gebruiker toe. Met wachttijd bedoel je waarschijnlijk dat het even duurt voordat het formulier verwerkt is en de melding voor de gebruiker komt dat het gelukt is. Dus de gebruiker drukt dan wat vaker op de knop omdat ie denkt dat ie niet goed gedrukt heeft.

Een oplossing zou dan kunnen zijn om via javascript de submit knop uit te schakelen (disable) na het drukken. Of het formulier tijdelijk te verbergen wanneer er gedrukt is. Zo voorkom je dat ze meerdere keren op de submit knop kunnen drukken.

Of ik zit er natuurlijk helemaal naast, dan graag een iets betere uitleg van het probleem.
Offline SchokkaertJ - 24/10/2016 10:24
Avatar van SchokkaertJ Nieuw lid Inderdaad, dit is de oplossing die ik zoek. 
kunt u mij verder helpen
Offline nielsvdwal - 24/10/2016 10:52 (laatste wijziging 24/10/2016 10:52)
Avatar van nielsvdwal PHP gevorderde De oplossing met jQuery is:
  1. $(document).ready(function(){
  2. $('form').on('submit', function(){
  3. $(this).find('input[type="submit"]').attr("disabled", true);
  4. return true;
  5. });
  6. });

Moet je wel even jQuery inladen, mocht je dat niet gebruiken.
Offline SchokkaertJ - 24/10/2016 13:51
Avatar van SchokkaertJ Nieuw lid en het zeflde maar in javascript?
Offline nielsvdwal - 24/10/2016 14:16
Avatar van nielsvdwal PHP gevorderde Pure javascript is voor mij alweer een tijdje geleden, maar met een beetje hulp van Google kom ik op dit uit. Je hoeft dan alleen je submit knop van je formulier te wijzigen:
  1. <input type="submit" onclick="this.form.submit(); this.disabled=true; this.value='Bezig met verzenden';">

Dus het gedeelte onclick="this.form.submit(); this.disabled=true; this.value='Bezig met verzenden';" toevoegen aan je submit knop.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2019 Sitemasters.be - Regels - Laadtijd: 0.164s