Aug
13
Doppelposting vermeiden
Thursday, 13. August 2009 17:00
Das aktualisieren der Seite wird oftmals von Besuchern auch nach einem Forumular benutzt. Damit jedoch kein Doppelposting entsteht erkläre ich kurz eine Funktion.
Hierzu muss bereits am Anfang der php-Datei eine Session mit session_start(); gestartet werden.
Zusätzlich muss in das Formular ein zusätzliches Feld hinzugefügt werden. Der name kann natürlich Frei gewählt werden.
echo "<input name='rft' type='hidden' value='".random_form_token()."' />";
Bei der Verarbeitung des Formulars muss nun nurnoch vor dem Speichern dies hier abgeprüft werden.
if(random_form_token($_POST['rft'])){ // Schreiben } else{ // Doppelposting erkannt }
Und nun hier noch die Funktion selbst.
function random_form_token($value=NULL){ if($value == NULL){ $token = hash("sha256","tanzmal".microtime()); $_SESSION['random_form_token'] = $token; return $token; } else{ if($value == $_SESSION['random_form_token']){ unset($_SESSION['random_form_token']); return true; } else return false; } }
Thema: PHP | Kommentare (0) | Autor: Simon
Subscribe by Email
Subscribe by Feed