Navigation

Toutes les catégories

Filtrer par auteur

Voir les derniers articles

Mettre en place reCaptcha sur Phpbb3

Il est souvent bien utile de vouloir se protéger des spammers et des inscriptions non sollicitées. reCaptcha est considéré comme un des plus  simple à mettre en plus et des plus...

reCaptcha

Il est souvent bien utile de vouloir se protéger des spammers et des inscriptions non sollicitées. reCaptcha est considéré comme un des plus  simple à mettre en plus et des plus sécurisé. Il s’intègre facilement avec de nombreux CMS comme jomla, wordpress ou encore PhpBB. Cependant aucune version n’est disponible pour la version PHPbb 3. Il faut donc modifier le code de certaines pages pour le mettre en place. C’est simple et stable.  Je vous conseille donc de l’effectuer.

Procédure :

Vous retrouverez les fichiers modifiés dans une archive téléchargeable ici. Sinon si vous souhaitez modifier directement vos fichiers télécharger reCaptcha pour Phpbb 2

1. Placer recaptchalib.php dans %phpbb_root_path %/includes/captcha

2. Sauvegarder les deux fichiers %phpbb_root_path %/styles/prosilver/template/ucp_register.html, %phpbb_root_path %/includes/ucp/ucp_register.php

3. Dans ucp_register.html :

A. Trouver <dd>{CONFIRM_IMG}</dd> et supprimer les lignes qui suivent :

[html]<dd><input type="text" name="confirm_code" id="confirm_code" size="8"
maxlength="8" title="{L_CONFIRM_CODE}" /></dd><dd>{L_CONFIRM_CODE_EXPLAIN}</dd>[/html]

4. Dans ucp_register.php :

A. Placer la ligne suivante juste avant l’instruction class ucp_register :

[php]require_once($phpbb_root_path . ‘includes/captcha/recaptchalib.’ .
$phpEx) ;[/php]

B. Placer les lignes de codes suivantes juste après global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx ; (cela se trouve à quelques ligne de celle précendente) :

[php]
// Get a key from http ://recaptcha.net/api/getkey
$publickey =  » ;
$privatekey =  » ;
# the response from reCAPTCHA
$resp = null ;
# the error code from reCAPTCHA, if any
$error = null ;[/php]

Attention veillez à obtenir une clé publique et privé pour le renseigné en haut. Pour cela il suffit de s’inscrire gratuitement au service.

C. Modifier la ligne $confirm_id = request_var(‘confirm_id’,  ») ; par :

[php]$confirm_id = (isset($_POST[‘recaptcha_response_field’])) ; [/php]

D. Supprimer la ligne :

[php]’confirm_code’ = array(‘string’, !$config[‘enable_confirm’], 5, 8), [/php]

E. Trouver la ligne $wrong_confirm = false ; et remplacer le bloc if par celui qui suit :

[php]if ($config[‘enable_confirm’])*/
if ( !$confirm_id) {
}
else {
$resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]) ;
if ($resp->is_valid == false) {
$error[] = $user->lang[‘CONFIRM_CODE_WRONG’] ;
$wrong_confirm = true ;
}
}[/php]

F. Trouver la ligne de code $code = gen_rand_string(mt_rand(5, 8)) ; et supprimer jusqu’à la ligne $db->sql_query($sql) ; (comprise)

G. Quelques lignes après la dernière supprimer modifier $confirm_image = en

[php]$confirm_image = recaptcha_get_html($publickey, $error) ; [/php]

Voilà cela devrait fonctionner correctement. Vider le dossier cache de votre forum et rendez vous sur la page d’inscription pour voir le nouveau captcha.

Je vous rappelle que les fichiers déjà modifiés sont disponibles ici. Bonne modifications.

Newsletter WebActus

Abonnez-vous pour recevoir notre sélection des meilleurs articles directement dans votre boîte mail.

Nous ne partagerons pas votre adresse e-mail.

Articles similaires

Webmarketing

Traduction neuronale  : qu’est-ce que c’est  ?

Traduction neuronale : kézaco ? La traduction automatique neuronale, ou TAN, est une notion récente qui est en train de bouleverser le monde de la traduction. En effet,...

Publié le par Elodie
Webmarketing

Slack désactive sa nouvelle fonction DM, quelques heures après sa sortie

Après la sortie de Slack Connect DM hier, l’entreprise a fait marche arrière. Les utilisateurs ont dénoncé le risque de recevoir des messages abusifs. L’article Slack...

Publié le par Appoline Reisacher