mehrmaliges form-senden verhindern

lsblsb

Grünschnabel
<form action="sessions.php" method="get">
<input type="hidden" name="sid" id="sid" value="<?php echo($sess_id); ?>" />
<input type="image" src="img/go_button.gif" name="submit" id="submit" value="weiter" />
</form>

Damit rufe ich die seite neu auf und reiche die ang. variable weiter.

Problem:

Wenn der user (bzw. ich) so oft und schnell auf den weiter-button drückt, das die seite nicht dazu kommt die nächste schnell genug zu laden bevor mein nächster klick kommt, dann werden irgendwie die werte in sid nicht weitergegeben und ich grieg nen leeren string auf der nächsten seite, was in meinem fall dazu führt, das eine neue Session id in die Datenbank geschrieben wird.(die session funktionalität ist selbst programmiert).

kann ich das irgnedwie verhindern?
 
mm. und wie würdest du das machen??

wär ok mit js, auch wenn ich eigentl alles in ndie klasse packen wollte..
 
Hi,

Du fügst einfach ein neues Hidden-Feld hinzu:
Code:
<input name="check" type="hidden" value="0">

Im OnClick-Ereignis des Senden-Buttons überprüfst Du, ob der Wert im Hidden-Feld 0 ist. Wenn Ja, dann sende (return true;) ansonsten brich ab (return false)

Bsp:
Code:
<input type="image" src="img/go_button.gif" name="submit" id="submit" value="weiter" onClick="if (document.formname.check.value == 0) {return true;} else {return false;}">

Statt formname trägst Du den Namen des Formulars ein (musst Du laut Deinem Codeschnipsel noch vergeben.

Ich hoffe, dass ich helfen konnte.

mfg, snuu
 
Leider funzt das script so nich.

ich glaub ich muesste das ganze script posten, das man versteht was ich mein.

irgendwie muss durch das oftmalige drücken von senden das php-script unterbrochen werden und setzt dann werte nich oder so
 
Zuletzt bearbeitet:
Das wirste ohne Javascript nicht hinbekommen!
Ein Formular kann man ganz einfach so oft abschicken wie man will,
das kannste nicht unterbinden!
Lasst mal das Javascript (kann man ausschalten), das ist Quark!
90% der User wissen nichtmal was Javascript ist, geschweige wie man es ausschaltet!
Davon abgesehen wieso sollte es einer ausschalten, wenn es einer macht dann weiss er was er macht!
schreib einfach ein kleinen Text drunter -> Javascript wird benötigt
und Ende!
 
ich leite die user nach erfolgtem submit zeitverzögert weiter auf die nächste seite. das geht sowohl mit html (header refresh) als auch mit js (settimeout()).

cu bloddy
 
Hallo,

ich weiß ja nicht, worum es in Deinem Script genau geht, aber letztendlich hat ein "böswilliger" Anwender ohnehinn die Möglichkeit das Script mehrmals hintereinander aufzurufen. Wenn das Probleme aufweisen sollte, müßtest Du das natürlich im Script abfangen. (Reload-Sperre für einen best. Zeitraum für eine IP)

mfg, snuu
 
Zurück