• 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.

RSScommenti all'articolo (0)

scrivi commento

Nome:

Email:

Url:


  • ARTICOLI CORRELATI

Ed ecco finalmente il vincitore dell’Asus EeePC … il numero 92!!

CISSIBOY che ha partecipato con il suo blog Sesto Potere con l’articolo che trovate qui:

Servage - One Solution

Preghiamo il fortunato vincitore di contattarci via mail a info…

Ultimi Articoli Commenti

Inserisci il tuo indirizzo e-mail per rimanere aggiornato sulle novità del sito.

  • SONDAGGIO
Che notizie vorresti trovare su mondoinformatico?
Visualizza risultati
  • CHATTING

utenti online

Ci sono attualmente 0 utenti e 4 ospiti collegati