F5 übermittelt doppelte Einträge

mäks

Mitglied
Hallo ;)


Ich habe folgendes Problem:

Meine Homepage bekommt ihren Content über ein externes Skript, welches die Beiträge in eine Datenbank einträgt.

Wenn ich also einen neuen Beitrag hinzufüge und anschließend auf F5 drücke (wieso auch immer :) ), dann trägt er den gleichen Beitrag nocheinmal in die Datenbank ein.

Meine Überlegung

Ein "hidden"-Formularfeld übermitteln und dieses auf Existenz zu prüfen.

1.)
Code:
<input type="hidden" name="check" />

Code:
			if ( isset($_POST["check"]) )
			{
				echo "wurde schon gesendet";
			}


Doch dann lässt er mich anschließend keinen Beitrag mehr hinzufügen, weil er ja in dem If-Zweig sozusagen feststeckt.


Das ich dann keinen Beitrag mehr posten kann ist ja auch nicht Sinn und Zweck der Sache :).


vielleicht kann mir da wer weiterhelfen :)

danke


Maks
 
Zuletzt bearbeitet von einem Moderator:
F5 ist in den meisten Browsern ein Reload der Seite -> Neuschickung der Daten (z.B. Beitrag)

Ich würde einfach auf eine andere Seite oder die selbe Seite ohne Parameter weiterleiten.
 
Also wenn ich es auf eine andere Seite weitereleite und dort dann auf F5 drücke habe ich das gleiche Problem.

Was ich nicht verstehe wie meinst du ohne Parameter übergeben?
 
Nein eben nicht, z.B. hast du folgende URLs:
-index.php?id=9&posttext=HalloHallo&username=ComFreek&somewhat=anywhat
Zu:
-index.php?showid=9
Einfach das die Informationen, die eingetragen werden sollten, nicht mehr übertragen werden oder das Kommando (&do=post) erneut geschickt wird.
 
Habe das Problem gerade selber gelöst.
Mit der Header-Funktion verweise ich einfach wieder auf die index Seite und somit bringt ein F5 klicken nichts mehr ;).
 
Kommt immer drauf an wer schneller ist oder? :)
Entweder der Browser oder der User mit seiner F5-Taste.

Eine weitere Möglichkeit wäre das Überprüfen ob der Eintrag bereits besteht.
 
Normalerweise braucht ein einfacher Mysqlquery in Verbindung mit einer Weiterleitung durch header so wenig Zeit dass das der Nutzer nicht einmal mitbekommt. Das ist buchstäblich nur ein Augenblick ;)
 
Zurück