nach klick auf "aktualisieren" wird neuer eintrag hinzugefügt
Aleks
- php
hallo zusammen,
brauche eure hilfe zu meinem php-script für mein gästebuch. wenn ich die eingaben an das script absende, werden diese in meine datenbank eingetragen und anschließend anzegeigt. klicke ich in meinem browser nun auf "aktualisieren", kommt der hinweis, dass die seite POST-daten enthält und ob ich das oder abbrechen will.
nun meine frage: gibt es eine möglichkeit zu verhindern, dass durch das aktualisieren derselbe gästebucheintrag nochmals angehängt wird?
danke im voraus!
Hello,
nun meine frage: gibt es eine möglichkeit zu verhindern, dass durch das aktualisieren derselbe gästebucheintrag nochmals angehängt wird?
Sicherstellen kann man das nicht, da der Browser dafür verantwortlich ist.
Wenn man mit einem Affenformular arbeitet, könnte man bei erfolgreichem Eintrag eine Umleitung mittels header() und geänderter URi versuchen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
hi,
Sicherstellen kann man das nicht, da der Browser dafür verantwortlich ist.
Wenn man mit einem Affenformular arbeitet, könnte man bei erfolgreichem Eintrag eine Umleitung mittels header() und geänderter URi versuchen.
danke erstmal für deine antwort! kannst du mir vielleicht noch sagen, was ein affenformular ist und wo ich infos finde?
danke!
so,
habe mich nun für die header-methode entschieden! nach dem ersten testen bin ich zufrieden, vielleicht noch die frage ob sich durch diese variante irgendwelche nachteile ergeben?
Hello,
habe mich nun für die header-methode entschieden! nach dem ersten testen bin ich zufrieden, vielleicht noch die frage ob sich durch diese variante irgendwelche nachteile ergeben?
Ich überstetze jetzt mal "Header-Methode" mit "Location: http://...".
Denn auch die Cache-Stratgien würden dem Browser per Http-Header mitgeteilt.
Die "Location: ..."-Methode wird nicht durch jeden Browser anstandslos unterstützt. Manche machen die Meckerbox auf, wenn eine Umleitung stattfindet, und fragen, ob sie denn dürfen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
Sicherstellen kann man das nicht, da der Browser dafür verantwortlich ist.
Aber man kann es dem Browser entweder leicht machen (wie du) oder etwas schwerer. (Siehe unten)
Wenn man mit einem Affenformular arbeitet, könnte man bei erfolgreichem Eintrag eine Umleitung mittels header() und geänderter URi versuchen.
Beispiel:
<?php
// Hier in die DB eintragen
// bei Erfolgreichem Eintrag:
header("LOCATION: http://www.domain.de/guestbook.php?".time());
exit();
// Als Querystring hänge ich den aktuellen Timestamp an => Seite wird neu geladen!!!
?>
Als nächstes kannst Du noch eine Session-Management aufbauen, in dem Du einen Zahlencode speicherst, der in einem Hidden-Field im Formular gespeichert ist und beim Abschicken mit dem in der SESSION gespeicherten Wert verglichen und anschließend gelöscht / überschrieben wird. Sollte das Formular nun nochmals abgeschickt werden, könnte man ne Fehlermeldung rausschicken : Ooops, schon mal abgeschickt!!!
So far, bauen mußt Du es selber!
Grüßle
Hello,
man könnte auch den ganz normalen Mechanismus von PHP benutzen, der bei allen mittels PHP generierten <Form>s automatisch die passende Cache-Stragegie übermittelt. Die bewirkt nichts anderes, als die übrigen "Tricks".
Dazu gehört natüelich auch, dass bereits das erst Formular nicht als html-datei, sonder ansl PHP-Datei gesendet wird.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo,
Ja, diese Möglichkeit gibt es.
wenn du die Daten in einer Db speicherst dann kannst du ein(2,3) Feld auf UNIQUE setzen.
oder
Du schreibst eine Look-file (IP Useragent) und blockst einen neuen Eintrag für 20 Sekunden der mit der gleichen Kennung kommt.
oder
Session
Simone