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 the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.