11.5 Mehrfaches Absenden desselben Formulars verhindern

Problem

Sie möchten dafür sorgen, dass Anwender nicht mehrmals dasselbe Formular übersenden.

Lösung

Sie generieren einen eindeutigen Identifikator und speichern das Kennzeichen im Formular als verborgenes Feld. Bevor Sie das Formular verarbeiten, prüfen Sie, ob das Kennzeichen bereits übersandt wurde. Wenn dies nicht der Fall ist, fahren Sie fort; wurde es bereits übersandt, sollten Sie einen Fehler generieren.

Beim Erzeugen des Formulars erhalten Sie mit Hilfe von uniqid( ) einen eindeutigen Identifikator:

<?php
$unique_id = uniqid(microtime(),1);
...
?>
<input type="hidden" name="unique_id" value="<?php echo $unique_id; ?>">
</form>

Beim Verarbeiten achten Sie dann auf diese ID:

$unique_id = $dbh->quote($_GET['unique_id']); ...

Get PHP 5 Kochbuch now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.