Formulaire mail + blocage de la touche F5

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire mail + blocage de la touche F5

par Neomcdn » 13 juin 2007, 10:53

Nous avons fait trois pages:

- le formulaire,
- la page de traitement invisible
- les pages de résultat ( erreur ou réussite)

Plus de problème de F5.

Dès que j'aurai plus de temps, je me pencherai sur les jetons.

Merci à vous deux!

@+!

par Jules Petibidon » 03 avr. 2007, 14:00

hello,

pour empecher la répétition de formulaires avec la touche F5, il y a une méthode très simple : les jetons

dans la page du formulaire tu définis un jeton (un rand tout simple suffit) que tu passe en session et en input hidden.

dans la page de traitement tu compare le jeton en session avec le jeton du formulaire, s'ils sont égaux, tu efface le jeton en session et tu fais ton traitement. S'ils ne sont pas égaux soit le jeton session a été effacé (F5), soit le jeton formulaire est invalide car envoyé par des méthodes pas catholiques.

bon courage !

par Expreg » 03 avr. 2007, 13:16

Tu ne peux pas bloquer une touche du clavier, impossible.

Par contre, travailler avec une variable de session et une page intermédiaire via un header location, il devient possible de vérifier juste avant l'envoi que la variable en session existe et bloquer ainsi l'envoi répétitif du même mail.

Formulaire mail + blocage de la touche F5

par Neomcdn » 03 avr. 2007, 12:36

bonjour à tous !

J'ai un problème de sécurité au niveau d'un formulaire mail, laissé aux internautes pour nous contacter.

Il rédigent sur une page A avec leur adresse (vérifiée avec du js), le corps, le sujet,... puis au clic sur le submit (bouton envoyer de ma page), ils sont redirigés vers une page B, sur lequel on a placé le code PHP et qui stipule que l'envoi est réalisé. Problème: Si l'internaute actualise la page et qu'il valide le message d'alerte du renvoi d'informations; le mail est réexpédié: et ça sans limite, ou celle de l'hébergeur peut-être

mon code est le suivant:
<?php
if ($_POST['categorie'] == 1){$to = "[email protected]";
}else if
($_POST['categorie'] == 2){$to = "[email protected]";
}else if
($_POST['categorie'] == 3){$to = "[email protected]";}
$subject = stripslashes($_POST['sujet']);
$body = stripslashes($_POST['type']).' '.stripslashes($_POST['corps']);
$headers = "From: " . stripslashes($_POST['adresseemail']) . "\n";
mail($to,$subject,$body,$headers);
?>
Dois-je mettre une validation du type:
<?php 
if($_POST['action'] == 'submitted') {  ''
}else if{
   
 ($_POST['action'] == 'submitted')
}
?>
Si oui, dois-je le mettre sur ma page A ou sur ma page B??

Merci d''avance