Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

rss

Вы не зашли.

Объявление

#1 2009-10-19 12:24:50

Amarelius
Модератор
Откуда: Kiev
Зарегистрирован: 2008-10-24
Сообщений: 639
Рейтинг :   69 
Профиль  Вебсайт

Капча от captcha.ru

Собственно тема о том как настроить капчу от captcha.ru на своем сайте.
http://photoload.ru/data/a3/06/a1/a306a13c6c1ee387390fdc96c7bdca66.png

Версия NG 0.9.1
1. Идем сюда и качаем архив с сайта.

http://photoload.ru/data/ba/08/5b/ba085ba9ace538a0e831ccfffb1265e6.png

2. Распаковываем содержимое архива в папку trash

http://photoload.ru/data/c2/ea/9a/c2ea9ab296477ed6346856f41c9aa5da.png

3. Содержимое файла ......\engine\trash\captcha.php заменяем на

Код:

<?php
@require_once('core.php');
@include_once dirname(__FILE__).'/kcaptcha/kcaptcha.php';

if(isset($_REQUEST[session_name()])){
    session_start();
}

$captcha = new KCAPTCHA();

if($_REQUEST[session_name()]){
    $_SESSION['captcha'] = $captcha->getKeyString();
}
?>

3. Содержимое файла ......\engine\captcha.php заменяем на

Код:

<?php
@require_once('core.php');
@include_once dirname(__FILE__).'/trash/kcaptcha/kcaptcha.php';

if(isset($_REQUEST[session_name()])){
    session_start();
}

$captcha = new KCAPTCHA();

if($_REQUEST[session_name()]){
    $_SESSION['captcha'] = $captcha->getKeyString();
}
?>

Вот собственно и вся установка, в самих шаблонах ничего менять не нужно, как работает можно посмотреть у меня на сайте.

Теперь про настройку.

Все настройки капчи вынесены в файл kcaptcha_config.php
$alphabet - перечисляет набор символов шрифта, не рекомендуется менять, так как символ который вы добавите может отсутствовать в тех шрифтах, которые есть в наличии
$allowed_symbols - перечисляет используемые из набора шрифта символы
$fontsdir - название папки со шрифтами
$length - количество отображаемых символов
$width - ширина изображения
$height - высота изображения
$fluctuation_amplitude - величина вертикальной амплитуды смещения символов
$no_spaces - в значении истинна (true) символы отображаются слитно
$show_credits - в значении истинна (true), под капчей отображается содержимое переменной $credits (чтобы не отображать достаточно установить равным false, пример $show_credits = false;)
$credits - содержит значение отображаемое под капчей при установленной в true $show_credits.
$foreground_color - цвет текста капчи
$background_color - цвет фона капчи
$jpeg_quality - качество картинки с капчей.

Отредактированно Amarelius (2009-10-19 12:37:12)


Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com

Неактивен

 

#2 2009-10-19 13:47:27

RMC
Пользователь
Зарегистрирован: 2009-07-01
Сообщений: 151
Рейтинг :   
Профиль  Вебсайт

Re: Капча от captcha.ru

Amarelius, а можешь посмотреть и если не сложно - написать, как правильно встроить капчу от http://recaptcha.net/
а то вставить то я её вставил, но только в гостевую и то пришлось собирать два кода в один.. не уверен, насколько удачно wink. но вроде тестил - проверяет.. wink
http://egf.spsu.ru/plugin/guestbook/

Отредактированно RMC (2009-10-19 13:47:52)

Неактивен

 

#3 2009-10-19 14:58:18

Amarelius
Модератор
Откуда: Kiev
Зарегистрирован: 2008-10-24
Сообщений: 639
Рейтинг :   69 
Профиль  Вебсайт

Re: Капча от captcha.ru

RMC, проблема в том, что у данной капчи проверка правильности ввода происходит на стороне сервера http://api.recaptcha.net, а в ng в движке, так же в ng по умолчанию капча встраивается как ссылка на изображение, а та капча которую ты предлагаешь сама генерирует html код (опять же на стороне их сервера), поэтому для поддержки этой капчи придется вносить изменения во все модули в которых ты ее планируешь использовать. Но это возможно.
----------------------------------------------------
Вообще я предлагаю создать абстрактный класс для работы с капчей на уровне ядра и плагинов, который будет отвечать за генерацию HTML-кода для капчи и проверять ее правильность, тогда при встраивании любого рода решений не будет необходимости перелапачивать такую кучу кода.

Отредактированно Amarelius (2009-10-19 15:00:11)


Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com

Неактивен

 

#4 2009-12-07 21:24:07

StronG
Пользователь
Откуда: Russia
Зарегистрирован: 2009-02-08
Сообщений: 431
Рейтинг :   
Профиль

Re: Капча от captcha.ru

RMC,  по мне эта капча уж слишком грамозкая !!!
Amarelius,  спасибо, хорошо смотрится))))

Неактивен

 

#5 2009-12-07 23:33:24

RMC
Пользователь
Зарегистрирован: 2009-07-01
Сообщений: 151
Рейтинг :   
Профиль  Вебсайт

Re: Капча от captcha.ru

StronG, но если на серваке нет библиотеки GD, то от любой капчи генерируемой на месте пользы нет, т.к. не показывается.
поэтому и взял рекапчу - там картинка генерируемся на их сервере..

Неактивен

 

#6 2010-05-03 17:33:02

CyberMama
Пользователь
Откуда: Иркутск
Зарегистрирован: 2009-11-24
Сообщений: 139
Рейтинг :   17 
Профиль  Вебсайт

Re: Капча от captcha.ru

Amarelius,   а с плагином feedback она у тебя совмещается?

Неактивен

 

#7 2011-03-19 18:25:39

Wolverine
Модератор
Откуда: Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3538
Рейтинг :   160 
Профиль  Вебсайт

Re: Капча от captcha.ru

После такой замены текста captcha.php перестает работать, например, капча в плагине feedback.

Так как сам плагин пишет в сессию captcha.feedback и в качестве параметра к captcha.php  передает id=feedback. В самой captcha.php стоит проверка, если передан id, то брать  $cShowNumber = $_SESSION['captcha.'.$blockName];, где $blockName = $_REQUEST['id'];

Лечится так: найти

Код:

$captcha = new KCAPTCHA();

заменить на

Код:

$id = $_REQUEST['id'] ? (string)$_SESSION['captcha.'.$_REQUEST['id']] : '';
$captcha = new KCAPTCHA($id);

Открыть kcaptcha.php

Найти

Код:

function KCAPTCHA(){

заменить на

Код:

function KCAPTCHA($id){

найти

Код:

// generating random keystring
            while(true){
                $this->keystring='';
                for($i=0;$i<$length;$i++){
                    $this->keystring.=$allowed_symbols{mt_rand(0,strlen($allowed_symbols)-1)};
                }
                if(!preg_match('/cp|cb|ck|c6|c9|rn|rm|mm|co|do|cl|db|qp|qb|dp|ww/', $this->keystring)) break;
            }

заменить на

Код:

if(!$id){
                // generating random keystring
                while(true){
                    $this->keystring='';
                    for($i=0;$i<$length;$i++){
                        $this->keystring.=$allowed_symbols{mt_rand(0,strlen($allowed_symbols)-1)};
                    }
                    if(!preg_match('/cp|cb|ck|c6|c9|rn|rm|mm|co|do|cl|db|qp|qb|dp|ww/', $this->keystring)) break;
                }
            } else {
                $this->keystring = $id;
            }

P.S. Спасибо Артем за баг-репорт

Неактивен

 

#8 2011-03-19 18:52:58

Wolverine
Модератор
Откуда: Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3538
Рейтинг :   160 
Профиль  Вебсайт

Re: Капча от captcha.ru

Хотя нет, я не до конца прочувствовал всю логику. Можно сделать проще.

Код:

if($_REQUEST[session_name()]){
    $_SESSION['captcha'] = $captcha->getKeyString();
}

заменить на

Код:

if($_REQUEST[session_name()]){
    $_SESSION['captcha'] = $captcha->getKeyString();
    if($_REQUEST['id']) $_SESSION['captcha.'.$_REQUEST['id']] = $captcha->getKeyString();
}

Отредактированно Wolverine (2011-03-19 18:53:26)

Неактивен

 

#9 2011-03-20 03:59:05

Neo
Пользователь
Откуда: SPB, Russia
Зарегистрирован: 2010-01-04
Сообщений: 463
Рейтинг :   
Профиль

Re: Капча от captcha.ru

Отлично, Wolverine!
Работает с плагинами (comments, addnews, feedback).

Неактивен

 

#10 2012-01-15 13:55:15

yaroslav
Новичок
Зарегистрирован: 2011-12-28
Сообщений: 5
Рейтинг :   
Профиль

Re: Капча от captcha.ru

как сделать под 0.93
KCAPTCHA 2.0

Отредактированно yaroslav (2012-01-15 13:58:01)

Неактивен

 

#11 2012-01-15 16:19:04

yaroslav
Новичок
Зарегистрирован: 2011-12-28
Сообщений: 5
Рейтинг :   
Профиль

Re: Капча от captcha.ru

причём не работает только в хроме

Неактивен

 

#12 2012-01-16 21:44:08

yaroslav
Новичок
Зарегистрирован: 2011-12-28
Сообщений: 5
Рейтинг :   
Профиль

Re: Капча от captcha.ru

разобрался сам
хром глючил ))

а как её сделать обновляемой при регистрации

Неактивен

 

#13 2015-06-15 13:20:15

miktor
Пользователь
Зарегистрирован: 2015-06-11
Сообщений: 21
Рейтинг :   
Профиль

Re: Капча от captcha.ru

Wolverine написал:

Хотя нет, я не до конца прочувствовал всю логику. Можно сделать проще.

Код:

if($_REQUEST[session_name()]){
    $_SESSION['captcha'] = $captcha->getKeyString();
}

заменить на

Код:

if($_REQUEST[session_name()]){
    $_SESSION['captcha'] = $captcha->getKeyString();
    if($_REQUEST['id']) $_SESSION['captcha.'.$_REQUEST['id']] = $captcha->getKeyString();
}

не работает. постоянно пишет, что неверный код.

Неактивен

 

#14 2017-08-17 16:54:34

murmurishka
Пользователь
Зарегистрирован: 2012-01-01
Сообщений: 43
Рейтинг :   
Профиль

Re: Капча от captcha.ru

Подниму еще раз тему - постоянно вылазит что код неверен.
Делал рекомендованные здесь приемы.

Сюда - продублировал.
Полное описание здесь: http://ngcms.ru/forum/viewtopic.php?pid=43400#p43400

Неактивен

 

Board footer

Powered by FluxBB

[ Generated in 0.012 seconds, 22 queries executed ]