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

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

Вы не зашли.

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

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

Капча от captcha.ru

Собственно тема о том как настроить капчу от captcha.ru на своем сайте.
a306a13c6c1ee387390fdc96c7bdca66.png

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

ba085ba9ace538a0e831ccfffb1265e6.png

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

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 22:24:07

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

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

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

Не в сети

#5 2009-12-08 00: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 19:25:39

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   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 19:52:58

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   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 19:53:26)

Не в сети

#9 2011-03-20 04: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 14: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 17:54:34

murmurishka
Участник
Зарегистрирован: 2012-01-01
Сообщений: 84
Рейтинг :   

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

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

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

Не в сети

Подвал раздела

Работает на FluxBB