Quand vous n'êtes pas enrégistré sur Joomla, une entrée Antispam est ajoutée dans le formulaire pour poster des messages/réponses. Celle-ci comporte une image avec un texte/rebus, ou tout ce que vous pourrez imaginer pour aider le contributeur à trouver le mot antispam.
Si celui-ci n'est pas correct, le message ne sera pas posté.
Ni le mot de passe(pas dans le source), ni le texte/rébus(c'est une image) ne sont lisibles par les robots.
__________________________________________________________________
Dans le fichier
Joomla/administrator/components/YourLang.phpAjouter:
| Code: |
DEFINE('_COM_A_ANTISPAM_DESC','' ); //vide si vous utilisez une image.
DEFINE('_COM_A_ANTISPAM_IMAGE','http://www.machin.bidule.tv/components/com_joomlaboard/emoticons/rebus.gif'//<-votre image avec le texte, rébus, etc...
DEFINE('_COM_A_ANTISPAM_WORD','YOURPASSWORD'); // Le mot de passe que vous aurez choisi.
DEFINE('_COM_A_ANTISPAM_DEFAULT','! Attention !' //message par défaut dans la boite. Ne pas oublier les pour remplacer les espaces.
DEFINE('_COM_A_ANTISPAM_WARNING','Vous avez oublié de composer le code antispam, ou votre code est erroné !'); //Warning message en cas d'erreur.
|
Dans le fichier
Joomla/components/joomlaboard/bb.js.php,
-sous les lignes:
formsubject=document.postform.subject.value;
if ((formsubject.length<1)) {
alert("Vous avez oublié d'entrer un Sujet");
submitme=0;
}
-Ajouter:
| Code: |
formantispam=document.postform.antispam.value;
if ((formantispam == "<?php echo _COM_A_ANTISPAM_DEFAULT; ?>")) {
alert("<?php echo _COM_A_ANTISPAM_WARNING ?>");
submitme=0;
}
|
Dans le fichier:
post.php, sous:
if (empty($sb_authorname))
{
echo _POST_FORGOT_NAME;
}
else if (empty($subject))
{
echo _POST_FORGOT_SUBJECT;
}
else if (empty($message))
{
echo _POST_FORGOT_MESSAGE;
}
Insérer:
| Code: |
else if($registeredUser!=1){
if ($antispam != _COM_A_ANTISPAM_WORD )
{
echo _COM_A_ANTISPAM_WARNING;
}
}
|
Dans le fichier
write html, sous la ligne:
if($setFocus==0 && $replyto==0 && ! $fromBot )
{echo "<script type="text/javascript">document.postform.subject.focus();</script>"; $setFocus=1;}
?>
</tr>
Insérer:
| Code: |
<?php
if($registeredUser==1) {
}else {
echo '<tr>';
echo ' <td class="sb_leftcolumn" style="color:red;"> <strong>Antispam</strong>: </td>' ;
echo ' <td style="color:red;"><input type="text" class="inputbox" name="antispam" size="35" maxlength="
400" value='._COM_A_ANTISPAM_DEFAULT.' /><br /> ';
echo ' <strong>'._COM_A_ANTISPAM_DESC;
if(_COM_A_ANTISPAM_IMAGE != ""){
echo ' <img src="<img src="'._COM_A_ANTISPAM_IMAGE.'" border="0" alt="'._COM_A_ANTISPAM_DESC.'" title="'._COM_A_ANTISPAM_DESC.'"/>';
}
echo ' </strong>
echo ' </td>';
echo '</tr>;
}?>
|
Créez avec paint ou le logiciel d'image que vous voulez, une image d'environ
390X40 avec du texte, un rébus, etc...permettant à l'utilisateur de connaitre facilement le mot de passe que vous aurez choisi. Sauvez sous le format gif.
L'uploader sous le nom indiqué (votre choix) dans le dossier indiqué (de votre choix) dans "_COM_A_ANTISPAM_IMAGE'".
________________________________________________________________
-Avantage sur Captcha ? Plus simple à installer, meilleure accessibilité (les caractères de certains captcha étant difficiles à lire).
-Inconvénient: il n'y a pas de changement du pass-word, autres que manuels.
Oui, mais les Ip des spammeurs étant vériifiables: facile de les interdire et votre système resistera mieux qu'un Capcha aux robots scannant en aveugles: des logiciels savent lire les captcha en quelques millisecondes avec 90 % de reconnaissance.
Bref, ça marche avec des sites normaux, moins bien avec des très gros sites qui valent une visite particulière et manuelle des spammeurs.
[ Édité par: christophe, le: 2007/08/25 15:13 ]