• 15 marzo 2008
  • 1 Stella2 Stelle3 Stelle4 Stelle5 Stelle Nessun voto

Prevenire l’invio multiplo dello stesso form

Per prevenire l’invio multiplo dello stesso form c’è una tecnica abbastanza semplice che non richiede neanche l’uso di JavaScript.

Nella pagina del form, che chiameremo form_page.php, inseriamo il seguente codice:

<?
session_start();
$secret=md5(uniqid(rand(), true));
$_SESSION['FORM_SECRET']=$secret;
?>

Quindi inseriamo nel form il seguente campo hidden:

<html>
<input type="hidden" name="form_secret" id="form_secret" value="<?php echo $_SESSION['FORM_SECRET'];?>” />
</html>

In pratica viene creato un ID unico per il form, che ci basterà solo controllare nella pagina seguente:

<?
//Retrieve the value of the hidden field
$form_secret=$_POST['form_secret'];
if(isset($_SESSION['FORM_SECRET'])) {
if(strcasecmp($form_secret,$_SESSION['FORM_SECRET'])===0) {
/*Inserire il codice da eseguire qui, poi viene cancellata la variabile di sessione, in modo che il form non sia più eseguibile di nuovo.
*/
unset($_SESSION['FORM_SECRET']);
}else {
//Chiave segreta non valida!
}
}else {
//La chiave manca
echo ‘Form data has already been processed!’;
}
?>

Già dai commenti si può  il funzionamento del codice.

In pratica una volta effettuato il processo di invio del form, unsetta la variabile di sessione, in modo che ad invii successivi venga eseguto altro codice, che in questo caso informa che il form è stato già inviato.

Per approfondire...





RSScommenti all'articolo (1)

scrivi commento

Nome:

Email:

Url:


Altri guadagni?

Da questo mese riprendiamo a pubblicare le statistiche di Mondo Informatico.
Tengo a precisare che erano state sospese a causa di problemi interni per i quali non ci era più stato possibile rendere pubblici alcuni dati.
Per questo motivo da…

Mondo Informatico on Facebook
  • SONDAGGIO
Che notizie vorresti trovare su mondoinformatico?
Visualizza risultati

utenti online

Ci sono attualmente 3 utenti e 92 ospiti collegati

  • andchia
  • gian90t
  • bestale