Тема: КАПЧА - или PIN код

Все так хотели капчу для Strawberry 1.1.1. Вот она! smile

ТРЕБОВАНИЯ
Естественно идет генерация картинки и поэтому вы должны узнать - есть ли у вас на сервере
поддержка библиотек gd. Нам надо что бы поддерживалась GD2. Иначе это решение для Вас бесполезно sad

КОРОТКО
Конечно не собственного производства, но работает.
Что в дистрибутиве? А тут лежат файлы (php) в которых нужно сделать изменения.
НИ В КОЕМ СЛУЧАЕ НЕ ЗАМЕНЯЙТЕ СВОИ ФАЙЛЫ ЭТИМИ - все что Вам нужно сделать - это открыть
эти файлы и скопировать указанный кусок кода в свой файл. Куда копировать тоже написано.

ШАБЛОНЫ.
В папке data/tpl/ лежат примеры.
Как выводить капчу в комментах - папка news_temp/form.tpl
Как оформить капчу - папка captcha/ и тут файлы которые и являются стилями капчи.
Дополнительная инфа тут: news_temp/form.tpl (смотреть комментарий внутри)

ДОП ФАЙЛЫ
В папке skins лежат файлы, которые нужно добавить в вашу папку skins.

КОПИРАЙТЫ
Данная капча входит в систему Strawberry 1.2.x
Все вопросы и предложения слать сюда: mrmiksar@mail.ru
А вообще скрипт позаимствован, поэтому воздержитесь от его продажи...

Надеюсь ничо не забыл и все заработает. Жду ваших предложений.

Удачной работы wink

Mr.Miksar (c) 2009
Сайт Strawberry 1.2.х http://miksar.mirahost.ru/strawberry/

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

2 (14 Mar 2009 05:36:16 отредактировано cmd)

Re: КАПЧА - или PIN код

Спасибо. Получилось. Но, ИМХО, у капчи есть недостаток - она не перегружается после добавления комментария.
Т.е. если юзверь ввел картинку с ошибкой, то она не перегружается

Re: КАПЧА - или PIN код

Да - можно отказаться от аякса и все будет супер!
Но можно и капчу в аякс сунуть. как руки дойдут - попробую... Хотя мне кажется что у мну ничо не выйдет - в аяксе я не шарю...

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

4

Re: КАПЧА - или PIN код

Miksar, в принципе не обязательно с аяксом колупаться. Вполне достаточно "картинку" в iframe запихать. Жмякнул на нее - она и перегрузилась.

Я не крутой ...
... я только учусь!

Re: КАПЧА - или PIN код

да неее...
Смысл то в чем? В том что картинка меняется если произведено какое то действие на страничке - у нас - добавление коммента.
Но, т.к. страница не обновляется с аяксом, то и картинка не меняется. А должна по сути...
Зачем же на неё жмакать ещё? Думаю боты вряд ли этим будут заниматься hmm

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

6 (05 Apr 2009 20:02:15 отредактировано StasOn)

Re: КАПЧА - или PIN код

Все сделал по инструкции..все пути прописаны правильно. видны поля для ввода кода, но сама картинка не отображается..По идее должен хотя бы бэкграунд для картинки рисоваться..что не так..подскажите..gd2 сервером поддерживается..strawberry 1.1.1

Re: КАПЧА - или PIN код

такое бывает, когда при вызове картинки index.php?pin=1 в коде выводится "что-то" помимо этого. Итого мы получаем сгенерированный код с примесью "этого чего-то" - поэтому картинка правильно не расшифровывается и вы ничего не видите. Проверте в коде, что может быть такое. возможно вы что-то выводите выше подключения head.php

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

8

Re: КАПЧА - или PIN код

Miksar, указывай, что это для Strawberry MME. Никогда не пиши Strawberry 1.2. Это моя ветка и так ты только людей путаешь.

Это каптча для какого скрипта?

Признанный мастер чинпоко, а-ай ^_^

Re: КАПЧА - или PIN код

Лёха zloy и красивый, не. именно для Strawberry 1.1.1 по технологии от 1.2 wink

ЗЫ
С понижением должности я теперь и переименовать не могу sad

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

10

Re: КАПЧА - или PIN код

Miksar, в настройках редактирования увидел только "разрешить редактирование своих титуло", но это не то.

Фигово, что нельзя свои псты редактировать. Надо это исправить.

Признанный мастер чинпоко, а-ай ^_^

11 (24 Apr 2009 22:24:47 отредактировано dMark)

Re: КАПЧА - или PIN код

Как его в блок регистрации сунуть (/registration/form.tpl), если здесь это используется:

<form method="post">
{lang.Login}
{lang.Passw}
({lang.Re})
{lang.Nick}
{lang.EMail}

<!-- PIN cod -->
<?=pin_cod("default"); ?>
<!-- PIN cod -->

{lang.AutoLogin}
</form>

Там вставка не канает.
Куда его, может в registration.php ???

Re: КАПЧА - или PIN код

Как то я пропустил этот вопрос...

Для файла регистрации нужно много модификаций...
А я делал капчу для комментариев.

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

13 (15 Aug 2010 19:30:57 отредактировано cmd)

Re: КАПЧА - или PIN код

Сегодня Miksar подсказал как его капчу интегрировать в ЧПУ.
Решение оказалось адски простым - поставить слеш.

Вместо

$tpl['capcha']['img'] = "<img src=\"index.php?pin=1&amp;rand=".$random."\" border=\"1\">";

Написать

$tpl['capcha']['img'] = "<img src=\"/index.php?pin=1&amp;rand=".$random."\" border=\"1\">";

Получаем путь от корня и всё работает на ура (если у вас главный файл index.php).

----

Спасибо Miksar

Re: КАПЧА - или PIN код

т.е. если у вас сайт лежит не в корне системы, а, скажем, http://site.ru/news/
то нужно написать так:

<img src=\"/news/index.php?pin=1&amp;rand=".$random."\" border=\"1\">
Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

15 (25 Sep 2010 19:32:35 отредактировано olafsen)

Re: КАПЧА - или PIN код

Извиняюсь, а как можно сделать цвет цифр более контрастным чем сам фон.

Ничего не видно....

P.S. Разобрался сам  - сделал фоновое изображение code_bg.jpg на 70% светлее.

Теперь цифирки стали виднее...

Re: КАПЧА - или PIN код

Ну во-первых вы можете заменить картинку фона. она лежит skins/images/code_bg.jpg
во-вторых найти кусок в функциях:

    $color = imagecolorallocate($image, 200, 150, 155);

и регулировать эти три значения от 0 до 255

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

17 (29 Sep 2010 15:41:06 отредактировано olafsen)

Re: КАПЧА - или PIN код

Miksar, спасибо.

Заметил ещё одну странность:

- если комментарий добавляет незарегистрированный пользователь - КАПЧА работает ( при невведении проверочного кода выскакивает сообщение - нужно ввести код );

- если комментарий добавляет зарегистрированный пользователь - КАПЧА НЕработает ( то есть -  если код не ввожу - комментарий добавляется и предупреждение не появляется).

Когда в коде:

if (pin_check() && $is_logged_in != true) {
  $error_message[] = t('Ви написали неправильний перевірочний код!');
}

true изменил на false или вообще убрал && $is_logged_in != true - результат тот-же .... сообщения о невведениии кода НЕТ.


Разобрался:

Где-то после строки 102 ( по новому )

if (!$comments){
    $error_message[] = t('Заполните поле "Комментарий".');

нужно вставить код:

if (!$pin_check) {
  $error_message[] = t('Ви написали неправильний перевірочний код!');
    }

Тогда КАПЧА будет срабатывать и для ЗАРЕГИСТРИРОВАННЫХ.

Re: КАПЧА - или PIN код

А смысл её делать для зарегистрированных? ))
Это было дано и капча только создана - могли быть какие то недоработки...
Для зарегиных не вижу смысла ставить проверку, т.к. их можно забанить или удалить...

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

19 (13 Mar 2011 17:22:11 отредактировано cmd)

Re: КАПЧА - или PIN код

А смысл её делать для зарегистрированных? ))

Зарегистрироваться могут спам боты. А вот чтобы они этого не сделали, можно прикрутить капчу к форме регистрации (Miksar это в 1.2 уже сделал, а я расскажу как это сделать для 1.1.1)

1. В /lang/ru/registration.ini пишем:

regErrorPin = "Вы неправильно ввели проверочный код.";

2. В /plugins/registration/default/form.tpl добавляем {lang.pin} туда, где хотим видеть капчу.

3. Теперь определяем наш {lang.pin} в файле /plugins/registration.php:

                    $replaces = array(
                        '{lang.RegNewUser}' => $this -> lang['regNewUser'],
                        '{lang.Login}'      => $this -> lang['regLogin'],
                        '{lang.Passw}'      => $this -> lang['regPassw'],
                        '{lang.Re}'         => $this -> lang['regRe'],
                        '{lang.Nick}'       => $this -> lang['regNick'],
                        '{lang.EMail}'      => $this -> lang['regEmail'],
                        '{lang.AutoLogin}'  => $this -> lang['regAutoLogin'],
                    '{lang.pin}'          => pin_cod("admin"), // это добавили

Обратим внимание, что admin это название шаблона, который должен находится по адресу /path/data/tpl/captcha/admin.tpl


4. Осталось дописать проверку. В том же /plugins/registration.php добавляем конструкцию:

if (pin_check() && $is_logged_in != true) {
                    $tpl = file_exists(rootpath.'/plugins/registration/'.$tpl.'/regError.tpl') ? GetContents(rootpath.'/plugins/registration/'.$tpl.'/regError.tpl') : GetContents(rootpath.'/plugins/registration/default/regError.tpl');
                      $replaces = array(
                            '{lang.Error}'     => $this -> lang['regError'],
                            '{lang.ErrorText}' => $this -> lang['regErrorPin'],
                        );
                    break;
                    }

Спасибо Miksar'у за капчу и комментарии в коде.

Re: КАПЧА - или PIN код

Ну я надеюсь разработчикам они помогут )
Хотя там всего 3 функции и остальное дело - как вывести её )

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

21

Re: КАПЧА - или PIN код

strawberry 1.1.1
Есть поддержка GD2.
Попытался прикрутить капчу к регистрации но получил ошибку в виде белой страницы (на всех абсолютно страницах сайта исчезает информация и в браузере при открытии страниц открывается белый экран).
Порылся в коде и нашел, что ошибка образуется в файле functions.inc.php где то после первой функции, так как удалив все после кода

$conf['quality'] = "75";
$conf['sitekey'] = "5ffvrVUQGeaKrV4gP4u2YjXBc";

### Проверка pin
function pin_check() {
    global $conf, $is_logged_in;
    if ($is_logged_in != true) {
    $code = substr(hexdec(md5(date("F j").$_POST["rand"].$conf['sitekey'])), 2, 6);
        if (extension_loaded("gd") && $code != intval($_POST['pin_check'])) {
            return 1;
        } else {
            return 0;
        }
    } else {
        return 0;
    }
}
### Вывод рэндомного pin

сайт  начинает отображаться нормально и на странице регистрации появляется сообщение: Ошибка:  Вы неправильно ввели проверочный код.

Сам файл лежит по адресу site.ru/registr.php
Помогите пожалуйста разобраться.

Я не волшебник, я только учусь!

Re: КАПЧА - или PIN код

bookvarik, http://strawberry.goodgirl.ru/forum/topic/4262/

Re: КАПЧА - или PIN код

Я не знаю. код верный и у всех работает. Может у вас hexdec не работает?

3 минуты и 35 секунд спустя:

И сделайте, что и cmd указал на второй строчке первого поста по ссылке (найдите такой же у себя в head.php  и поменяйте содержимое в скобках...). Обновите страницу - примерно строчки 3 последние в студию wink

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

24 (17 Nov 2012 13:14:39 отредактировано bookvarik)

Re: КАПЧА - или PIN код

Провернул операцию с error_reporting(E_ALL);, но никаких ошибок не получил - просто белый экран. Заметил, что при удалении блока 

### Вывод рэндомного pin
function pin_cod($styler) {
global $conf, $config;
if ((extension_loaded("gd") && $id == 2) || (extension_loaded("gd") && $is_logged_in != true)) {
$rand = time + (mt_rand(0, time));
$ra = mt_rand(1, 10);
$random = substr($rand, 1, $ra);
$tpl['capcha']['img'] = "<img src=\"index.php?pin=1&amp;rand=".$random."\" border=\"1\" alt=\"Код безопасности\">";
$tpl['capcha']['enter'] = "<input type=\"text\" name=\"pin_check\" size=\"10\" maxlength=\"6\" class=\"pin_enter\"><input type=\"hidden\" name=\"rand\" value=\"".$random."\">";

if (is_file(templates_directory.'/captcha/'.$styler.'.tpl')) {
ob_start();
include templates_directory.'/captcha/'.$styler.'.tpl';
$codder_cap = ob_get_clean();
} else {
$codder_cap = "Ваш код: ".$tpl['capcha']['img']."<br>Повтор: ".$tpl['capcha']['enter'];
}

return $codder_cap;
}
}

в файле functions.ini.php
сайт начинает отображаться нормально. Также проверил файл ~/data/settings.php - с ним все ОК.
Продолжаю искать...

Я не волшебник, я только учусь!

Re: КАПЧА - или PIN код

Попробуйте как:

function pin_cod($styler) {
global $conf, $config;
    if ((extension_loaded("gd") && $id == 2) || (extension_loaded("gd") && $is_logged_in != true)) {
        $rand = time + (mt_rand(0, time));
        $ra = mt_rand(1, 10);
        $random = substr($rand, 1, $ra);
        $tpl['capcha']['img'] = "<img src=\"/index.php?pin=1&amp;rand=".$random."\" border=\"1\" alt=\"Код безопасности\">";
        $tpl['capcha']['enter'] = "<input type=\"text\" name=\"pin_check\" size=\"10\" maxlength=\"6\" class=\"pin_enter\"><input type=\"hidden\" name=\"rand\" value=\"".$random."\">";

        if (is_file(templates_directory.'/captcha/'.$styler.'.tpl')) {
            ob_start();
            include templates_directory.'/captcha/'.$styler.'.tpl';
            $codder_cap = ob_get_clean();
        } else {
            $codder_cap = "Ваш код: ".$tpl['capcha']['img']."<br>Повтор: ".$tpl['capcha']['enter'];
        }

        return $codder_cap;
    } else {
        return (extension_loaded("gd") ? "" : "у вас нет GD библиотеки!");
    }
}

если нет, то посмотрите, что у вас лежит по пути в

templates_directory.'/captcha/'.$styler.'.tpl'

может ошибка внутри файла стиля?

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!