Jak zabezpieczyć stronę przed ponownym wysłaniem tego samego formularza? Mechanizm zabezpieczający można oprzeć na sesji. Zabezpieczy on przed wysłaniem tego samego formularza poprzez odświeżenie strony, a nie zablokuje ponownego wysłania poprzez kolejne ponowne wypełnienie formularza i naciśnięcie przycisku wyślij.
W kodzie formularza należy dodać następującą linię:
<input type=”hidden” name=”form_hash” value=”” . md5(time()) . “”>
Natomiast kod mikro skryptu będzie wyglądał następująco:
if (!$_SESSION[‘sent’] || $_POST[‘form_hash’] != $_SESSION[‘sent’])
{
$_SESSION[‘sent’]=$_POST[‘form_hash’];
echo “tu wykonujemy prawidłowy kod dodania formularza”;
}
else
{
echo “proszę nie wciskać odświeżania!”;
}
To tyle 🙂