Formulardaten nach Reload nicht erneut eintragen

Status
Nicht offen für weitere Antworten.

Sinac

Erfahrenes Mitglied
Hi @all.
Folgendes:
Ich habe eine Website bei der in allen Seiten eine Shoutbox per include() integriert ist. diese wird also immer aktualisiert wenn ich eine andere Seite öffne.
Wenn ich nun etwas in die Shoutbox eintrage und danach nochmal auf reload klicke ohne vorher eine andere Seite zu öffnen werden die Daten erneut eingetragen. Eine Reloadsperre ist irgedwie uch keine alternative, denn es kann ja sein, dass man die Seite aktualisiert um zu sehen ob jemand was neues geschrieben hat.
Jemand nen Vorschlag wie ich das am Besten löse?

Greetz...
Sinac
 
Du koennst vielleicht checken ob genau dieser Text von genau diesem User bereits eingetragen ist.
Das Problem dabei ist, dass dadurch auch der relativ unwahrscheinliche Fall, dass wenn zu einem spaeteren Zeitpunkt der selbe Text nochmal gepostet werden soll dieser Versuch fehlschlaegt.
 
Ich hab es so gelöst, dass ich nach dem Eintragen auf die index-Seite weiterleite. So hast du durch die Weiterleitung nicht mehr das Problem, dass die POST-Daten beim aktualisieren nochmal eingetragen werden.
 
Du könntest auch mit einem versteckten input-Feld arbeiten, das einen eindeutigen Wert mitübergibt (zufallsgeneriert), und wenn ein Eintrag mit diesem Wert in der Datenbank schon vorhanden ist, werden die Formulardaten nicht mehr eingetragen.
 
Die Lösung von Sebastian Wramba favorisiere ich auch. Damit ich nicht immer zur Index-Seite komme, schicke ich in einem Hidden-Field die aktuelle URL mit und lasse nach dem Eintragen in die Datenbank per header(); wieder an die URL weiterleiten. Macht sich allerdings doof wenn gerade in der Seite Daten per POST übergeben wurden (z.B. ein Suchformular oder sowas)
 
Ja, ich denke so werde ich das auch machen, scheint die sinnvollste Lösung zu sein. Wollte das Teil eh nochmal ne schreiben weil es bis jetzt nur sone modifizierte Fertig-Shoutbox mit Text-Datei ist. Dann vielen Dank an euch!
Greetz...
Sinac
 
Status
Nicht offen für weitere Antworten.
Zurück