Hello,
- Irgendwann wird die Tabelle wo die eindeutige ID drin abgelegt wurde länger und länger und länger..Oder sollten die einzelnen IDs wieder irgendwann entfernt werden ? Wenn ja, wann ? Wie lösst Ihr das ?
Eine Datenbank hat den Vorteil des schnellen satzweisen (selektiven) Zugriffes. Du kannst auch einfach eine Aufräumroutine einbauen, die entweder jeden Tag einmal durch einen Cronjob oder bei jedem Formularaufruf mit eine Wahrscheinlichkeit startet. PHP macht das ja so mit den Sessiondateen und das funktioniert so leidelich. Besser wäre es, wenn man in jedem Datensatz die gewünschte Lebensdauer angeben könnte und nicht für alle zusammen.
- Ich kann doch nicht bei jedem Kontaktformular davon ausgehen, dass eine DB vorhanden ist...Hab ich als Alternative lediglich die Möglichkeit, statt einer DB ne Textdatei zu benutzen (siehe auch Punkt 1) ? Oder kann man das auch anders lösen ?
Du kannst dafür selbstverständlich auch ein Flatfile benutzen. Ob das dann eine "Textdatei" ist, liegt ganz in Deinem Ermessen. Das könnte auch eine direktgestreute Datei sein, oder eine mit einem serialisiertem Array.
PHP stellt dafür die Funktionen pack(), unpack(), serialize(), unserialze() und ggf. base64encode() und base64decode() zur Verfügung.
Die andere Lösungsmöglichkeit mit dem Redirect die teilweise aufgeführt wurde, hab ich nicht richtig kapiert:
- Formulardaten werden an den Request-Handler gesendet
- Der führt nach abarbeitung einen Redirect auf eine Art "Vielen Dank" Seite durch.
- "Vielen Dank" Seite kann problemlos reloaded werden.
Jo, und was ist, wenn der Benutzer einmal auf Zurück klickt, also wieder auf der Seite ist, wo der Request-Handler sitzt und erst dann einen Reload durchführt ? Dann hab das Reload-Problem ja wieder..
Dann könnte es sein, dass die Seite nicht mehr gültig ist. Ich würde genau dann die benutzerfreundlichkeit einbauen und den User darauf hinweisen, dass er dieses Formular doch schon abgeschickt hat. Du kannst es dank Deiner IDs ja schließlich festetellen.
Kann mir jemand helfen/folgen ?
Beides.
Die Flatfile-Variante erfordert genaues Nachdenken über Locking und benötigte Methoden, da man das dann selber programmieren muss. Die Datenbankvariante erfordert eben immer eine DB-Tabelle...
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen