Alban JAMESSE

Alban JAMESSE
Responsable E-commerce

#ecommerce, #internet &Co

   

Tombé dans le commerce tout petit, puis dans l'internet un peu plus grand;
Je fais du e-commerce activement depuis… trop longtemps.

Écoutez moi tous les matins sur Goood Morning Web

Contactez moi  
+33(0) 687.007.697


Votre message a bien été envoyé.

Votre message N'A PAS été envoyé.
Un problème est survenu. N'hesitez pas à me contacter par un autre moyen.

Anti-spam pour formulaire de contact universel

Anti-spam pour formulaire de contact universel

Cela va faire maintenant 20 ans (!?) que j’utilise une technique anti-spam que je trouve miraculeuse.
Elle est pourtant SI SIMPLE que je me demande encore tout le temps pourquoi elle n’est pas universelle…

Mais si elle était universelle, elle ne fonctionnerait simplement plus.

Je protège tous mes formulaires de contact avec cette technique depuis donc de très nombreuses années.

La technique se base facilement sur le fait que les robots spammeurs veulent remplir tous les champs de votre formulaire.

J’ajoute donc un champ URL dans mon formulaire et je le cache en CSS.

<style>
    #monform input[type=url]{display:none}
</style>
 
<input id="url" name="url" type="url">

 

Et en récupérant mon formulaire, je vérifie si le champ URL est rempli.
S’il l’est, c’est que ce n’est pas un humain qui a rempli le formulaire (sinon, il n’aurait pas vu le champ).
Et donc ça dégage.

<?php

// Tu recup tes variables et leur fait un petit traitement de sécurité au besoin ici

$message = $_GET['m'];
$email = $_GET['e'];
[…]
$url = $_GET['u'];


// Tu t'assures que tous les champs requis sont là et surtout que le champ URL est vide
// C'est le empty($url) qui est important ici

if (isset($message) && isset($email) […] && empty($url)) {
    // Tu fais tes expéditions d'email comme tu le veux (Perso, je passe par l'API Mailjet)
    […]
    // Important, si tu envoies une confirmation de réception à l'expéditeur, n'envoies pas le message d'origine
    // Les spammeurs pourraient utiliser ton accusé de réception pour faire passer leurs SPAM.
}

// Et si le champ URL est rempli, tu réponds à l'expéditeur d'aller se faire voir dans d'autres contrés.
elseif (isset($url)) {
    echo '<center><img src="https://pbs.twimg.com/media/CNzgBseWwAQ90Nw.png:large" alt="Hahaha"/><br>Please bitch</center>';
}


?>

Remerciez Xakan pour sa demande.