Y a t'il une possibilité d'éviter des réponses identiques dans plusieurs champs d'un formulaire

Petit nouveau ! | 6 Messages

13 déc. 2020, 11:47

Bonjour à tous,
J'ai cherché vainement une réponse à mon problème.
J'ai un formulaire classique (nom, prénom, adresse, etc...)
Je reçois en retour pas mal de mail avec des réponses identiques dans plusieurs champs. Quand je relève mes mails, ça m'oblige de quand même lire tous les messages qui arrivent ce qui me prend pas mal de temps souvent pour rien.
Je suis débutant en PHP et je ne trouve pas ou me renseigner pour apprendre et essayer de régler ce problème.
Si quelqu'un peu me donner une information où trouver des infos ça m'aiderait bien.
Merci par avance

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 déc. 2020, 12:41

Si c'est envoyé par le même expéditeur en quelques secondes (qui appuie sur le bouton envoyer plusieurs fois), tu peux désactiver le bouton envoyé en javascript une fois qu'il a été cliqué 1 fois.

Si c'est envoyé par plusieurs expéditeurs, tu peux mettre un token unique dans le formulaire et au traitement de celui-ci vérifier que ce token n'a pas déjà été traité (ou faire la vérif sur les champs envoyés) mais ça t'oblige à stocker les réponses ou les tokens.
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 6 Messages

14 déc. 2020, 16:47

Merci pour la réponse.
Mon problème c'est un utilisateur qui met par exemple son nom dans le champ nom et qui met aussi son nom dans le champ prénom ou aussi dans le champ adresse, etc et qui ensuite envoie le message. A la réception du message j'ai plusieurs fois son nom. Ce sont des personnes qui font ça pour semer la zizanie....
Mon problème c'est que je dois ouvrir à chaque fois les messages reçus car parmi tous les messages il y a aussi des messages qui sont importants.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

14 déc. 2020, 17:52

Et bien tu vérifies que nom != prénom != message avant de l'envoyer.

Mais si ils font ça pour te spammer, le plus simple est d'ajouter une captcha.
Ou sinon une limitation par IP (par exemple maximum 3 messages par heure par IP)
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 6 Messages

14 déc. 2020, 19:49

Merci,
J'ai déjà mis une captcha et le nombre de mauvais mail a bien diminué.
Si je comprend bien, je devrais vérifier que le nom figurant dans le champ nom soit différent de celui figurant dans le champ prénom ou d'un autre champ pour permettre l'envoi du formulaire.
Si c'est bien ça serait il possible de me donner une petite idée du code (je suis débutant en PHP)
Merci par avance pour votre précieuse aide.

Mammouth du PHP | 2703 Messages

14 déc. 2020, 19:54

$nom != $prenom

mais ce serait plus simple de faire l'inverse, que l'on ai le code ou l'url de la page contenant le formulaire, et le code du fichier qui traite ce formulaire.

Petit nouveau ! | 6 Messages

15 déc. 2020, 11:09

Bonjour,
Merci pour votre réponse.
Voici l'url de la page du formulaire: https://royalpromotion.ch/formulaire.html
et ci-dessous le code du fichier qui traite le formulaire:

<?php
session_start();
if(isset($_POST['captcha'])) {
if($_POST['captcha'] == $_SESSION['captcha']) {
echo "Captcha valide !";

Header("Location:https://royalpromotion.ch/formulaire.html");

header('content-type: text/html; chartset=iso-8859-1');

$TO = "[email protected]";
$h = "From: ".$TO;
$suject = "Demande de renseignements";
while (list($key, $val) = each($_POST)) {
$message .= "$key : $val\n";
}
mail($TO, $suject, $message, $h);
Header("Location:https://royalpromotion.ch/confirmation-contact.html");

}
else {
echo "Captcha invalide....";
Header("Location:https://royalpromotion.ch/erreur-captcha.html");
}
}
?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

15 déc. 2020, 12:18

Et donc qu'as-tu essayé pour mettre en place ce qu'on t'a indiqué ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 6 Messages

15 déc. 2020, 14:18

Pour l'instant rien du tout, pas trop eu le temps ....je veux y réfléchir et comprendre ...

Petit nouveau ! | 6 Messages

20 déc. 2020, 12:08

Bonjour,
Je suis désolé mais j'ai vraiment de la peine pour trouver comment réaliser le code nécessaire pour résoudre mon problème étant donnée que je suis vraiment débutant en PHP.
Serait il possible d'obtenir une aide plus importante.
Si jamais, merci par avance.