Aller au contenu

Sujets conseillés

Posté

Bonjour,

j'ai mis une page contact sur mon site qui permet de remplir un formulaire avec la fonction <form action="mailer.php" method="POST" ... qui envoie le contenu du formulaire vers mon adresse mail et renvoie le visiteur vers un fichier "reponse.html" où on lui dit qu'en cas de non-réponse de ma part il a dû y avoir une erreur dans le formulaire qui ne me permet pas de l'identifier.

Depuis quelques jours je reçois plusieurs mails vides : aucun champ n'est renseigné. L'expéditeur est désigné par "nobody" dans ma messagerie puisque ça provient d'un formulaire en ligne. Je n'ai donc aucune possibilité de voir qui a écrit.

Y a-t-il un moyen de rajouter une ligne dans mon mailer qui me dit d'où provient le message quand le visiteur ne remplit aucun champ ?

Merci pour votre aide

opte

Posté

Je ne sais pas si tu peux verifer d'ou vient un champ vide, mais tu peux completer ton formulaire grace à un controle de champ. Si les champs sont vides, tu invite gentiment l'utilisateur à les remplir ;)

Comme ça, si tu reçoit encore de mail vides, c'est que tu as un bug quelque part.

Posté (modifié)

Bonjour opte, oui il est possible de recevoir par exemple l'IP de la machine qui envoie le message. Mais à ta place je bloquerais plutôt l'envoie du message si les champs ne sont pas remplis.

if(@$_POST['emetteur'] != "" && @$_POST['sujet'] != "" && @$_POST['message'] != ""
{ // les champs sont remplis on peut envoyer le message
mail();
}

Sinon tu peux aussi essayer de vérifier que le formulaire a bien été posté à partir de ton site grâce à la fonction $_SERVER["HTTP_REFERER"], mettre un captcha pour éviter les spams de robots et vérifier le format de l'adresse email grâce aux expressions régulières.

Edit: pour obtenir l'IP -> $_SERVER["REMOTE_ADDR"], il te suffit de l'inclure dans le message que tu reçois.

Modifié par Wolf18
Posté

La façon la plus simple est d'insérer un champs caché contenant cette variable, mais ce n'est pas la plus sure à mon avis.

<input type="hidden" name="IP" value="<?php echo $_SERVER['REMOTE_ADDR'] ?>">

Posté

Pour intégrer l'IP, tu dois l'ajouter lors du traitement du mail uniquement. Mais l'IP ne te donnera pas plus de sécurité.

Contrôle en Javascript et PHP que les champs soient bien remplis :)

Posté

si je remplis moi-même le formulaire je ne reçois rien - mais cela me le fait avec d'autres sites, je crois que ma messagerie comprend que je me renvoie un message à moi-même, c'est la seule explication que je trouve.

J'ai demandé à quelques amis de remplir le formulaire et je le reçois bien comme il faut.

Donc c'est bien quelqu'un qui s'amuse à m'envoyer un formulaire vide, ou plutôt en mettant une simple virgule dans chaque champs pour ne pas les laisser vides.

J'ai réussi à intégrer la fameuses remote-adress, comment à partir de là je peux voir d'où vient l'envoi ?

Merci !

Posté

Il y a des petits malins qui s'amusent à tester les formulaires de contact. Je reçois régulièrement des messages bizarres, et l'adresse IP de la machine expéditrice me renvoie en Chine neuf fois sur dix.

Quant au formulaire "en parler à un ami" que j'aime tant, il sert bien aux spammeurs, pas de doute. J'ai eu la flemme de mettre un captcha mais il faudrait...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...