Plugin Anti-Spam
progfrance
Member
dans Modifications
Bonjour,
J'ai l'habitude de ne pas mettre de capcha anti-spam sur mes sites donc je lui préfère la vérification des messages par un serveur.
Askimet est je pense le meilleur pour détecter les spam.
Voici donc le plugin qui permet de vérifier et détecter les spam.
Edit : C'est un premier jet donc je pense l'améliorer au fur et à mesure.
Pour l'installation:
0) Posséder une classe Askimet sur http://akismet.com
1) Récupérer la classe sur le site suivant et décompresser dans votre répertoire "core/lib"
http://www.achingbrain.net/stuff/akismet/
2) Éditer le fichier index.php et ajouter avant la ligne suivante:
Après
URL_DE_VOTRE_ARTICLE : Etant l'adresse de votre article Edit : Pas réussi à trouver le code pour récupérer l'adresse de l'article
ASKIMET_KEY : Clé Askimet précédemment récupérée
4) Dans la même classe, modifier la méthode demarrage
Après
Par contre, il reste encore a modification de l'admin pour visualiser les commentaires spam, les supprimer ou les valider, etc ...
J'ai l'habitude de ne pas mettre de capcha anti-spam sur mes sites donc je lui préfère la vérification des messages par un serveur.
Askimet est je pense le meilleur pour détecter les spam.
Voici donc le plugin qui permet de vérifier et détecter les spam.
Edit : C'est un premier jet donc je pense l'améliorer au fur et à mesure.
Pour l'installation:
0) Posséder une classe Askimet sur http://akismet.com
1) Récupérer la classe sur le site suivant et décompresser dans votre répertoire "core/lib"
http://www.achingbrain.net/stuff/akismet/
2) Éditer le fichier index.php et ajouter avant la ligne suivante:
include_once(PLX_CORE.'lib/class.plx.motor.php');
le ligne suivante :
include_once(PLX_CORE.'lib/Akismet.class.php');
3) Editer le fichier core/lib/class.plx.motor.php dans la méthode newCommentaireAprès
$i = 0;
do { # On boucle en testant l'existence du fichier (cas de plusieurs commentaires/sec pour un article)
$i++;
Ajouter
$akismet = new Akismet('http://www.placementarisque.com/', 'dfaa895b49db');
$akismet->setCommentAuthor($author);
$akismet->setCommentAuthorEmail($mail);
$akismet->setCommentAuthorURL($site);
$akismet->setCommentContent($contenu);
// $url = './?article'.intval($this->plxRecord_arts->f('numero')).'/'.$this->plxRecord_arts->f('url');
$akismet->setPermalink('http://www.placementarisque.com/');
$isSpam = 0;
if($akismet->isCommentSpam()) {
// store the comment but mark it as spam (in case of a mis-diagnosis)
$filename = PLX_ROOT.$this->aConf['racine_commentaires'].'_spam_'.$artId.'.'.$date.'-'.$i.'.xml';
$isSpam = 1;
} else {
if($this->aConf['mod_com']) # On modere le commentaire => underscore
$filename = PLX_ROOT.$this->aConf['racine_commentaires'].'_'.$artId.'.'.$date.'-'.$i.'.xml';
else # On publie le commentaire directement
$filename = PLX_ROOT.$this->aConf['racine_commentaires'].$artId.'.'.$date.'-'.$i.'.xml';
}
} while(file_exists($filename));
# On peut creer le commentaire
if($this->addCommentaire($filename,$author,$ip,$mail,$site,$contenu)) { # Commentaire OK
if ($isSpam == 1)
return 'spam';
else if($this->aConf['mod_com']) # En cours de moderation
return 'mod';
else # Commentaire publie directement, on retourne son identifiant
return 'c'.$date.'-'.$i;
} else { # Erreur lors de la création du commentaire
return 'Une erreur s\'est produite lors de la publication de ce commentaire';
}
URL_DE_VOTRE_SITE : Etant l'adresse de votre site Edit : Pas réussi à trouver le code pour récupérer l'adresse du siteURL_DE_VOTRE_ARTICLE : Etant l'adresse de votre article Edit : Pas réussi à trouver le code pour récupérer l'adresse de l'article
ASKIMET_KEY : Clé Askimet précédemment récupérée
4) Dans la même classe, modifier la méthode demarrage
Après
} elseif($retour == 'mod') { # Le commentaire est en modération
$msg = 'Le commentaire est en cours de modération par l\'administrateur de ce site';
header('Location: '.$url.'/&msgcom='.urlencode($msg).'#form');
}
Ajouterelseif($retour == 'spam') { # Le commentaire est en spam
$msg = 'Le commentaire a été détecté en spam';
header('Location: '.$url.'/&msgcom='.urlencode($msg).'#form');
}
Voilà testé et validé.Par contre, il reste encore a modification de l'admin pour visualiser les commentaires spam, les supprimer ou les valider, etc ...
Connectez-vous ou Inscrivez-vous pour répondre.