de Aron Rotteveel Inclure un jeton unique sur chaque POST a travaillé pour moi. Cependant, mon formulaire est toujours envoyé lorsqu'un utilisateur actualise la page (F5). J'ai réussi à résoudre ce problème en ajoutant une remise à zéro:
// reset session token
$_SESSION['token'] = md5($_POST['token'] . time());
mes scripts finaux va comme:
if (isset($_SESSION['token'])) {
if (isset($_POST['token'])) {
if ($_POST['token'] != $_SESSION['token']) {
echo '<h3>Oops! You already submitted this request.</h3>';
} else {
// process form
// reset session token
$_SESSION['token'] = md5($_POST['token'] . time());
}
} else {
echo 'post token not set';
$_SESSION['token'] = md5($somevariable . time());
}
}
oh! ne pas oublier d'ajouter session_start();
avant <!DOCTYPE>
Je suis un débutant PHP alors s'il vous plaît corrigez-moi si vous trouvez des irrégularités.
Pouvez-vous désactiver l'événement qui est déclenché en appuyant sur Entrée? –
Smack les chaque fois qu'ils le font. Finalement, ils vont apprendre :) – Gordon
Je recommanderais d'utiliser des clés de formulaire. Jetez un oeil à cela ici: http: //net.tutsplus.com/tutorials/php/secure-vos-forms-with-form-keys/ –