Tag-Archiv für » doppel «

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: