Posez votre question Signaler

[PHP] Anti-Spam [Résolu]

megatek 26Messages postés vendredi 5 décembre 2003Date d'inscription 2 mai 2010Dernière intervention - Dernière réponse le 5 avril 2012 à 00:22
Bonjour je suis WebMaster de mon site sur lequel j'ai développer un petit livre d'or !
Depuis quelques temps je sui assaillis de messages spam !
sex, female, orgasm ....
J'ai tout dabord procédé à un enregistrement de l'ip de l'emmetteur pour pouvoir la bloquer en cas de problèmes (sans grand résultats puisque celle-ci n'est jamais la meme).
Pour l'instant je dois procéder à une validation manuelle des messages (les messages sont enregistrés dans une base de données contenant le nom, le mail, la note et le commentaire) pour que les messages soient visibles ! (par conséquent je supprime les messages de spam !)
Cependant je recois entre 5 et 20 messages par jour et la vérification me prends du temps !
J'aurais souhaité mettre en place un système de blacklist !
J'ai donc une base de données de type mysql appelé "blacklist" avec une liste de mots interdits !
Dans mon formulaire j'ai 4 champs (nom, mail, note, commentaire), le champs nom et commentaires sont la cible des mot présent dans ma blacklist !
Je souhaiterais faire une vérification du input text pour le nom et du textarea pour le commentaire, pour vérifier que ceux ci ne contiennent pas un mot de ma base "blacklist" !
Je sui un peu coincé a ce niveau la !
Comment parcourir la value du input type=text et du textarea et y décelé un mot interdit ??? Et ensuite valider l'envoi du message dans la base (la validation manuelle reste a effectuer pour qu'il soit visible)ou afficher l'erreur et ne pas envoyer ce message dans la base !
J'espère avoir été assez clair !
Merci de vos réponses !
Lire la suite 
Réponse
+0
moins plus
salut

j'ai po la solution avec mysql, mais le systeme captcha (php5 requis) utilisé sur de nombreux site est tres fonctionnel pour bloquer les robots qui balancent du spam a tout va. en revanche, il pose des problemes pour les personnes malvoyantes qui n'arrivent pas à le lire... a toi de voir si ca t'interesse donc.

http://classes.scriptsphp.org/doc.captcha
Ajouter un commentaire
Réponse
+0
moins plus
oui j'ai entendu parler de ce système, simplement je souhaiterais tout développer moi meme comme c'est le cas jusqu'à présent !
Et éviter d'inclure trop de scripts dont je ne suis pas l'auteur !

De plus cette histore de parcourir un textarea a la recherche d'un mot ou d'une liste de mots pourrais me servir dans d'autres fonctions !

merci a toi quand meme :)
Ajouter un commentaire
Réponse
+0
moins plus
En plus j'ai bien essayé de mettre un système captcha en attendant de développer mon propre système anti-spam, mais ou je suis nul, ou y'a un truc ... je ne vois pas comment l'utiliser !!

Si qqun avait un tuto assez détaillé ... se serait avec plaisir !

Merci d'avance !
Ajouter un commentaire
Réponse
+0
moins plus
Merci de Votre aide ...
J'ai réglé mon PB !!!!!!
Jazzodrome- 25 mars 2007 à 09:00
Bonjour, j'ai le même problème que toi sur un forum que je maintiens. Mais par contre je suis assez nul en php... Peux-tu me dire comment tu as résolu le problème ?
Répondre
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Au final, j'ai fais un systeme "captcha" mais personnel !
Génération d'une clé unique aléatoire sur 10 caractères, si cette valeur n'est pas présente dans ma page de vérification, retour au point de départ ... aucune insertion, dans la base rien de rien !!!!
Et depuis ... plus aucun soucis =)

si besoin je peux aider sur le code !

PS : Je développe tout moi meme ... je n'utilise pas de forum préfait ou autre modules pour mon site !
Ajouter un commentaire
Réponse
+0
moins plus
Oui ça m'intéresse ! Si tu peux m'envoyer le code, je pense arriver à l'adapter pour mon forum... Dans tous les cas, merci pour ta réponse :)
Ajouter un commentaire
Réponse
+0
moins plus
Dans mon formulaire :

//Générer une chaine de caractère unique et aléatoire
function random($car) {
$string = "";
$chaine = "abcdefghijklmnpqrstuvwxyz0123456";
srand((double)microtime()*1000000);
for($i=0; $i<$car; $i++) {
$string .= $chaine[rand()%strlen($chaine)];
}
return $string;
}

// APPEL
// Génère une chaine de longueur 10
$chaine = random(10);

echo "
<INPUT TYPE=HIDDEN NAME=chaine VALUE='$chaine'>
<br>Recopier le code suivant ci-dessous : <b>$chaine</b>
<br><input type='text' name='chaine_saisi'>";


Ma chaine est créée et envoyée en variable cachée à la page de traitement, ainsi que la chaine a recopier par l'utilisateur !!

Ensuite sur ma page de traitement :


$chaine=$_REQUEST["chaine"];
if (!isset($chaine)) {
echo "<br>No Spam Allowed Here !!!<br><br><a href='index.php'><< Back</a>";
} else{
$chaine_saisi=$_REQUEST["chaine_saisi"];
if (($chaine_saisi)!=($chaine)) { echo "<br>Erreur dans la saisie du code.<br> Veuillez recommencer.<br><br><a href='javascript:history.back()'><< Retour</a>";
} else {
// Exécution de ton code si tout est OK !


Voila a peu près ce que ca donne !

Si t'as besoin ... ;o)
Gofromiel- 30 mars 2008 à 12:52
C'est peut être un peu tard, mais pour ceux qui recherchent une solution moins contraignante, j'ai écris une petite fonction en PHP qui attribut des scores aux messages. Depuis que je l'ai mise en place sur mes sites, je n'ai plus aucun spam. Elle est très efficace et pas pénible pour l'utilisateur qui n'a pas à déchiffrer d'image ou à faire d'opération arithmétique.

http://www.weirdog.com/blog/php/l_anti_spam_fastoche.html
Répondre
gryzzly 4649Messages postés lundi 7 novembre 2005Date d'inscription ContributeurStatut 18 septembre 2012Dernière intervention - 30 mars 2008 à 13:33
Il n'est jamais trop tard, ça pourra toujours servir ;-)
En tout cas, tu es passé dans mes bookmarks.
Répondre
Luc3281- 11 janv. 2009 à 20:56
Il y a aussi http://fabiens.ch/nospams qui te créer des images avec ton email si jamais ;)
Répondre
pierre- 5 avril 2012 à 00:22
Super mégatek merci beaucoup, je cherchais ça depuis longtemps et j'essayais d'en faire un moi même (en version plus simple). Merci beaucoup :D
Répondre
Ajouter un commentaire
Ce document intitulé «  [PHP] Anti-Spam  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.