Recaptcha for phpBB3
Over the last year, I have had significant issues with spam on the phpBB3 forums that I administer. The recent blog post over at the phpBB site confirmed two things I already suspected: first that I am not alone in my spam problem and second that there is no easy way to replace the default captcha to prevent this spam. Upcoming version 3.0.6 of phpBB aims to solve both of these problems by providing a multi-purpose API to interface with any challenge-response including but no longer limited to captchas. For anyone using an earlier release of phpBB3, here is how I was able to get reCAPTCHA working. This completely eliminated the spam problem on my forums.
- Register reCAPTCHA keys for your forum domain at http://recaptcha.net/.
- Install bzr, Bazaar version control.
- get phpbb3-recaptcha experimental branch. (bzr branch lp:phpbb3-recaptcha)
- In a web broswer, browse to the phpbb3-recaptcha folder and open info.xml. A page will open with patch instructions. Follow the instructions, including for the language and style files. I found using rsync locally was helpful when copying the mod files to my phpBB installation instead of copying each file one by one.
- Browse to the /install/index.php page of your forum in a web browser, click on the recaptcha tab and click install. Then, go to the admin control panel and click on reCAPTCHA under Board Configuration. Here you need to input your public and private reCAPTCHA keys you obtained in step 1. Enable reCAPTCHA and click save. New users will now need to solve a reCAPTCHA to register on your forum.
Note for phpBB 3.0.5
I found I had to modify the patch instructions slightly for version 3.0.5 of phpBB. In file /includes/ucp/ucp_register.php the code
‘confirm_code’ => (($config['recaptcha']) ? array(‘string’, false, 0, 100) : array(‘string’, !$config['enable_confirm'], 5, 8)),
should instead be
‘confirm_code’ => (($config['recaptcha']) ? array(‘string’, false, 0, 100) : array(‘string’, !$config['enable_confirm'], CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS)),