Zabezpieczenie przed ponownym wysłaniem formularza w PHP

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 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code
 

This site uses Akismet to reduce spam. Learn how your comment data is processed.