Хак: reCAPTCHA

По мотивам топиков: livestreet.ru/blog/tips_and_tricks/1447.html и livestreet.ru/blog/4115.html решил основательно прикрутить рекапчу. Кое что допилил.

Инструкция:
1. Берем тут (выложу в «Модули» позже) sacral.ru/upload/recaptcha.zip
livestreet.ru/addons/141/
2. Если Вы не меняли файлы, которые идут в комплете — можете смело грузить с заменой.

3. В config\config.php ПОСЛЕ раздела «Прочие настройки» и ДО раздела «Установка локали» вставить:
require_once(DIR_SERVER_ROOT."/config/config.captcha.php");


т.е. так:

define('BLOG_URL_NO_INDEX', true); // "прятать" или нет ссылки от поисковиков, оборачивая их в тег <noindex> и добавляя rel="nofollow"
 
require_once(DIR_SERVER_ROOT."/config/config.captcha.php");

/**
* Установка локали
*/


4. В config\config.captcha.php пропишите публичный и личный ключи.

И да, регистрироваться в рекапче тут, если что.

18 комментариев

avatar
спасибо! нужно попробовать — а то эти левые регистрации и спамеры уже надоели :)
avatar
Ну вот, наконец то, спасибо!
avatar
Попробовал на Денвере — работаить!) Спасибо. Прикручу и на продуктивный сайт, как поток оттуда дневной схлынет…
avatar
ещё бы под 0.4 сразу :)
avatar
Вот выйдет релиз, будет и под 0.4. Может, он уже в ядре будет, кто знает.
avatar
уже сделал под 0.4 :)

Всё то же, что и ТСа, но…

в config.class.php добавляем


$config['view']['CAPTCHA_PUBLIC_KEY'] = 'CAPTCHA_PUBLIC_KEY';
$config['view']['CAPTCHA_PRIVATE_KEY'] = 'CAPTCHA_PRIVATE_KEY';
require_once (dirname(dirname(__FILE__))."/engine/lib/external/recaptcha/recaptchalib.php");


в ActionRegistration.class.php функция выглядит так
$resp = null;
			if ($_POST["recaptcha_response_field"]){
				$resp = recaptcha_check_answer (Config::Get('view.CAPTCHA_PRIVATE_KEY'),$_SERVER["REMOTE_ADDR"],$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);}
			 if ($resp==null or !$resp->is_valid){
				$this->Message_AddError($this->Lang_Get('registration_captcha_error'),$this->Lang_Get('error'));
                $bError=true;
                }

и, соответственно в шаблоне
<script type="text/javascript"
			src="http://api.recaptcha.net/challenge?k={cfg name='view.CAPTCHA_PUBLIC_KEY}">
			</script>

Вроде так работает :) Файл config.captcha.php не нужен. Файлы самой библиотеки заливаем в /engine/lib/external/
avatar
Файл config.captcha.php не нужен.
В принципе не нужен. Придерживался архитектуры 0.3 =) По той же идее делал define.
avatar
а плагином?
avatar
Спасибо
avatar
сделал всё по инструкции… но почемуто пишет
Notice: Use of undefined constant CAPTCHA_PUBLIC_KEY - assumed 'CAPTCHA_PUBLIC_KEY' in /home/kubkom/public_html/kubstudevteam/classes/modules/sys_viewer/Viewer.class.php on line 163


И в добавок теперь вместо капчи
Invalid public key. Make sure you copy and pasted it correctly.


Регался — копировал верно…
Объясните что не так
avatar
какая версия движка?
avatar
0.3.1
avatar
Такое может быть, если в config.php не туда вписать строчку. Проверьте, что она вписана ДО раздела «Установка локали».
avatar
спасибо… поставил сразе перед разделом строку и всё получилось
avatar
не получилось прикрутить капчу к LiveStreet 0.4.1
avatar
получилось прикрутить
avatar
информативно :)
avatar
Можно пожалуйста описать подробнее где и что находиться:
ActionRegistration.class.php, config.class.php
если бы не ленились и писали подробно меньше вопросов было бы.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.