CAPTCHA
[MOD / HACK] by Abbas Ali
NOUVEAU : CAPTCHA Plugin ! Plus nécessaire de modifier le code voir ici le sujet en anglaisOu par ici Ci-dessous, le code initial (non plugin) Beaucoup de Spamming de commentaire ont été signalé sur les galeries Coppermine.
Abbas Ali a pensé utiliser
Captcha pour filtrer les "commentaires" déposés par des robots.
Que fait cette modification de Coppermine ?
- Une image-texte s'affiche à coté du formulaire de commentaire. Il y a une nouvelle case à renseigner obligatoirement. "Confirmation"
- L'utilisateur sera invité à écrire exactement le texte suivant les indications de l'image affichée.
- Si le texte écrit par l'utilisateur n'est pas identique à l'image-texte, alors le commentaire ne sera pas ajouté. Ce qui bloque de fait les robots !
Fichiers à modifier :
- db_input.php
- themes/votretheme/theme.php
- lang/french.php (et tous les fichiers languages que votre galerie propose ! traduction nécessaire dans ces langues !)
Nouveaux fichiers :
- captcha.php (racine de Coppermine. Là où se situe INDEX.PHP)
- captcha.class.php (dossier votre_cpg/include/)
- fonts
NECESSITE FREETYPE sur votre serveur. (voir ci-dessous l'exemple d'un phpinfo.php)
(https://forum.coppermine-gallery.net/index.php?action=dlattach;topic=29564.0;attach=4975;image)
1/ TELECHARGEZ CAPTCHA.
Placez le fichier PHP
captcha.php à la racine du site.
Placez
captcha.class.php dans le dossier "
include" de Coppermine.
Placez les polices de caractères TTF dans le dossiers
/fonts que vous devez créer.
(TIPS : vous pouvez utilisez n'importe quelles fontes TrueType)
2/ Ouvrez
french.php (et tous les fichiers /lang que votre galerie propose)
cherchez
'non_exist_comment' => 'Le commentaire sélectionné n\'existe pas.',
puis après la ligne ci-dessus ajoutez celle-ci :
'captcha_error' => 'Le code de confirmation ne correspond pas. The confirmation code didn\'t matched',
recherchez
'report_comment_title' => 'Envoyer ce commentaire à l\'administrateur', //cpg1.4
et après la ligne ci-dessus ajoutez celle-ci :
'confirm' => 'Confirmation',
-----------------------------------
3/ Ouvrez le fichier
votre_cpg/themes/theme.phpcherchez :
'{COMMENT}' => $lang_display_comments['comment'],
puis après cette ligne ajoutez la suivante :
'{CONFIRM}' => $lang_display_comments['confirm'],
cherchez :
<!-- END input_box_no_smilies -->
</td>
<td class="tableb_compact">
<input type="hidden" name="event" value="comment" />
<input type="hidden" name="pid" value="{PIC_ID}" />
<input type="submit" class="comment_button" name="submit" value="{OK}" />
</td></tr>
après le code ci-dessus, ajoutez :
<tr>
<td class="tableb_compact" colspan="2">
{CONFIRM}
</td>
<td class="tableb_compact" colspan="2">
<input type="text" name="confirmCode" size="5" class="textinput"> <img src="captcha.php" align="middle">
</td>
</tr>
-----------------------------------
4/ Ouvrez
db_input.phpcherchez :
case 'comment':
if (!(USER_CAN_POST_COMMENTS)) cpg_die(ERROR, $lang_errors['perm_denied'], __FILE__, __LINE__);
ajoutez :
require("include/captcha.class.php");
if (!PhpCaptcha::Validate($_POST['confirmCode'])) {
cpg_die(ERROR, "Confirmation code didn't matched", __FILE__, __LINE__);
}
PYAP
Sujet en anglais