Ciao,
in aggiunta al sistema descritto da Luca puoi adottare anche un'altra misura (l'utente/utonto potrebbe sempre fare back e poi submit):
inserisci in un campo nascosto del form una stringa casuale (generata ad es con md5(uniqid(rand(), true)) ), al momento del submit fai
if( $_SESSION['duplicate'] == $_POST['unique'] )
{
//non va bene è un doppio submit , gestisci il problema
}
else
{
//tutto ok, rinnovo il valore da controllare
$_SESSION['duplicate'] = $_POST['unique'] ;
}
Problemi per i più esigenti:
la sessione potrebbe anche scadere (dopo 20 minuti) e allora bisognerebbe ricorrere a un cookie permanente....è vero che il browser potrebbe anche non supportare i cookie, e allora bisognerebbe salvare il dato da qualche parte nel db (fare una verifica prima dell'insert o utilizzare un campo unique e gestire l'errore)

Rispondi quotando