Установка reCAPTCHA на LiveStreet
| Категория: LiveStreet | Опубликовано 26-11-2011
11 комментариев
Понятно, что стандартная каптча не сможет хорошо защитить от спаммеров. Поэтому займемся её заменой. Я для себя выбрал reCAPTCHA, хотя её многие и не любят. Итак, идем сюда и получаем ключи: Public Key и Private Key. Public будем вставлять в JavaScript и он может быть найден в исходном коде, Private нужно хранить в секрете и использовать только на стороне сервера.
Инструкция более не актуальна – собрал плагином!
Итак, приступаем к замене каптчи. Идем в /templates/skin/название-темы/actions/ActionRegistration и открываем файл index.tpl , в котором заменяем
<img src="{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}" onclick="this.src='{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}&n='+Math.random();" />
<p><input type="text" name="captcha" value="" maxlength="3" class="input-100" /></p>на
<script type="text/javascript" src="http://api.recaptcha.net/challenge?k=ЗДЕСЬ_ВАШ_Public_Key">
</script><noscript>Включите JavaScript или обновите ваш браузер!</noscript><script type="text/javascript">
var RecaptchaOptions = {
custom_translations : {
instructions_visual : "Введите два слова:",
instructions_audio : "Введите что вы слышите",
play_again : "Включить заново",
cant_hear_this : "Скачать в формате MP3",
visual_challenge : "Визуальный режим",
audio_challenge : "Режим аудио",
refresh_btn : "Обновить",
help_btn : "Помощь",
incorrect_try_again : "Неверно. Пожалуйста, попробуйте еще раз.",
},
lang : 'ru', // Unavailable while writing this code (just for audio challenge)
theme : 'white' // Make sure there is no trailing ',' at the end of the RecaptchaOptions dictionary
};
</script>для русификации. Подробнее о кастомизации каптчи смотрите здесь.
Далее качаем саму библиотеку каптчи отсюда, распаковываем и кладем её содержимое в /engine/lib/external/recaptcha. Далее идем в /classes/actions, открываем файл ActionRegistration.class.php. Добавляем в начало файла подключение библиотеки
require_once ($_SERVER['DOCUMENT_ROOT']."/engine/lib/external/recaptcha/recaptchalib.php");Затем удаляем или комментируем
if (!isset($_SESSION['captcha_keystring']) or $_SESSION['captcha_keystring']!=strtolower(getRequest('captcha'))) {
$this->Message_AddError($this->Lang_Get('registration_captcha_error'),$this->Lang_Get('error'));
$bError=true;и добавляем
$resp = null;
if (array_key_exists('recaptcha_response_field',$_POST)){
$resp = recaptcha_check_answer ('ЗДЕСЬ_ВАШ_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;Надеюсь не нужно объяснять, что нужно заменить ЗДЕСЬ_ВАШ_Private_Key на Private Key.
Установка reCAPTCHA на LiveStreet 0.5.1 завершена!





Parse error: syntax error, unexpected T_PROTECTED in /usr/home/mayer/community/classes/actions/ActionRegistration.class.php on line 209
Перепроверьте правильность выполнения инструкций. Я на три сайта уже поставил – никаких проблем не было. Если не поможет – покажите эту строчку и код рядом. Есть ли какие-то дополнительные плагины, влияющие на регистрацию?
Parse error: syntax error, unexpected T_PROTECTED in Z:\home\46.46.70.11\www\lskap\classes\actions\ActionRegistration.class.php on line 206
206 строка это protected function EventActivate() {
Только что пробовал на чистую версию не чего не активировано не установлено…
Еще и на локалке? Закиньте этот файл куда-нибудь.
http://community.pp.ua/ActionRegistration.class.zip вот весь фаил
У вас одна фигурная скобка лишняя в конце
гже именно?! или можете подправить и прислать на jazz.xray@gmail.com заранее благодарен
отправил.
Благодарю,теперь все отлично!!!
кстатит поправьте тогда в инструкции)))
Поправил
Спасибо что нашли ошибку и за то что помогаете гуглу расшифровывать старые книги (каптча именно этим занимается)