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

Ecco di seguito le statistiche RECORD di Mondo Informatico per il mese di giugno 2009

Utenti unici: 410.279
Pagine Viste: 664.329
Chiavi più popolari di giugno 2009
(chiave - numero visite - percentuale sul totale)

giochi gratis 47.616     13,51%…

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

utenti online

Ci sono attualmente 4 utenti e 133 ospiti collegati

  • chaltrowsky
  • gibbo89
  • mauro8fra
  • supermauro