PHP Scripte
ReloadPreventer
Bei jeden Aufruf einer Seite die ein Formular enthält, wird ein eindeutiger Token erzeugt und in die Session als auch als Hidden-Tag in des Formulars geschrieben. Auf der formularverarbeitenden Seite wird dann der Session-Token mit dem Hidden-Tag-Token verglichen. Nach dem Vergleich wird sofort wieder ein neuer Session-Token erzeugt. Wird das Formular nun durch F5 erneut abgesendet, so wird ein alter Hidden-Tag-Token mitgeschickt der natürlich nun nicht mehr mit Session-Token übereinstimmt.
Beispiel (Auszug):
$rp = (object) new ReloadPreventer;
/* do all checks before you output the token for another form… */
if (isset($_POST['submitted_form'])) { // only check if form is submitted
// check if tokens from form and session match
echo ($rp->isValid() == TRUE) ? 'Input OK' : 'Data sent twice';
} // end if