Как добавить reCAPTCHA в форму регистрации

Запросы на решение проблем

Модератор: ykolesnikov

Ответить
stariy125@yandex.ru
OTRS Новобранец
Сообщения: 34
Зарегистрирован: 19 дек 2011, 14:02
Поблагодарили: 1 раз

Как добавить reCAPTCHA в форму регистрации

Сообщение stariy125@yandex.ru » 03 сен 2014, 10:54

Исходные данные:
ОС: Windows Server 2012 Standart
OTRS: OTRS 3.0.19
Делается перенаправление:
support.mycompanysite.ru -> внешний_IP_сервер_№1 -> внутренний_IP_сервер_№2:port

Задача:
Необходимо добваить recaptcha от google в форму регистрации пользователя CustomerLogin.dtl

Что делаю:
Согласно инструкции http://forums.otterhub.org/viewtopic.php?f=60&t=5941 :
1. Зарегистировался на google.com
2. Зарегистрировал домен - получил ключи (в качестве сайта указал внешний_IP_сервер_№1)
3. Установил reCAPTCHA, соответствующие файлы, полученные при установке файл поместил в папки
Kernel\cpan-lib\HTML\Tiny.pm
Kernel\cpan-lib\Captcha\reCAPTCHA.pm
4. Внес (согласно выше указанной ссылке) изменения в файлы
Kernel\Output\HTML\Layout.pm
Kernel\System\Web\InterfaceCustomer.pm

Что не получается (не понимаю как сделать):

В инструкции http://forums.otterhub.org/viewtopic.php?f=60&t=5941 про изменения в файле CustomerLogin.dtl написано :

Код: Выделить всё

Code: Select all
#            <tr>
#              <td>$Text{"CustomerID"}: </td>
#              <td> <input type="text" name="CustomerID" value="$QData{"UserCustomerID"}" size="25" maxlength="50"/></td>
#            </tr>
# begin recaptcha
            <tr>
               <td>&nbsp;</td>
               <td>$Data{"reCAPTCHA"}</td>
            </tr>
#end recaptcha
          </table>
          <input class="button" type="submit" value="$Text{"Create"}"/>
Но в имеющемся у меня файле CustomerLogin.dtl другой код:

Код: Выделить всё

<!-- dtl:block:CreateAccount -->
            <div id="Signup">
                <a href="#Login" class="InlineNavigation">&larr; $Text{"Back"}</a>
                <h2>$Text{"Create Account"}</h2>
                <p>$Text{"Please fill out this form to recieve login credentials."}</p>
                <form class="Floating Validate" action="$Env{"CGIHandle"}" method="post" enctype="application/x-www-form-urlencoded">
                    <input type="hidden" name="Action" value="CustomerCreateAccount"/>
                    <input type="hidden" name="Lang" value="$Env{"UserLanguage"}"/>
                    <div class="NewLine">
                        <label class="Mandatory" for="FirstName"><span class="Marker">*</span> $Text{"Firstname{CustomerUser}"}</label>
                        <input title="$Text{"Your First Name"}" name="Firstname" type="text" id="FirstName" maxlength="128" value="$QData{"UserFirstname"}" class="W50pc Validate_Required"/>
                        <div id="FirstNameError" class="TooltipErrorMessage"><p>$Text{"Please supply a first name"}</p></div>
                    </div>
                    <div class="NewLine">
                        <label class="Mandatory" for="LastName"><span class="Marker">*</span> $Text{"Lastname{CustomerUser}"}</label>
                        <input title="$Text{"Your Last Name"}" name="Lastname" type="text" id="LastName" maxlength="128" value="$QData{"UserLastname"}" class="W50pc Validate_Required"/>
                        <div id="LastNameError" class="TooltipErrorMessage"><p>$Text{"Please supply a last name"}</p></div>
                    </div>
                    <div class="NewLine">
                        <label class="Mandatory" for="Email"><span class="Marker">*</span> $Text{"Email{CustomerUser}"}</label>
                        <input title="$Text{"The User Name you wish to have"}" name="Email" type="text" id="Email" maxlength="128" value="$QData{"UserEmail"}" class="W100pc Validate_Required Validate_Email"/>
                        <div id="EmailError" class="TooltipErrorMessage"><p>$Text{"Please supply a"} $Text{"Email{CustomerUser}"}</p></div>
                    </div>
                    <div class="NewLine">
                        <button id="CreateAccount" type="submit" value="$Text{"Create"}">$Text{"Create"}</button>
                    </div>
                    <div class="Clear"></div>
                </form>
            </div>
<!-- dtl:block:CreateAccount -->
Т.е. разные коды предлагается изменить (тут могу в терминологии путаться)

Добавил строки:

Код: Выделить всё

                    <div class="NewLine">
                        <label class="Mandatory" for="Email"><span class="Marker">*</span> $Text{"Email{CustomerUser}"}</label>
                        <input title="$Text{"The User Name you wish to have"}" name="Email" type="text" id="Email" maxlength="128" value="$QData{"UserEmail"}" class="W100pc Validate_Required Validate_Email"/>
                        <div id="EmailError" class="TooltipErrorMessage"><p>$Text{"Please supply a"} $Text{"Email{CustomerUser}"}</p></div>
                    </div>
#####################################################
                    <div class="NewLine">
                        $Data{"reCAPTCHA"}
                    </div>
#####################################################
                    <div class="NewLine">
                        <button id="CreateAccount" type="submit" value="$Text{"Create"}">$Text{"Create"}</button>
                    </div>
Результат:
OTRS перезапускается (успешный перезапуск MySQL, Apache, CRONw)
Форма регистрации работает и ругается на незаполненные поля, пользователь создается.
Поля reCAPTCHA нет.

Самое обидное: ранее (1 года назад) reCAPTCHA была уже мной прикручена и работала... но ни записей, ни того кода у меня нет.
OTRS 3.3.13
CentOS7/Postgre 9.3
Windows 2012 R2/MS SQL 2012 Express (11.0.2100.60)

stariy125@yandex.ru
OTRS Новобранец
Сообщения: 34
Зарегистрирован: 19 дек 2011, 14:02
Поблагодарили: 1 раз

Re: Как добавить reCAPTCHA в форму регистрации

Сообщение stariy125@yandex.ru » 03 сен 2014, 15:20

Может кто-нибудь потыкает в документацию по файлам *.dtl ????
OTRS 3.3.13
CentOS7/Postgre 9.3
Windows 2012 R2/MS SQL 2012 Express (11.0.2100.60)

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Как добавить reCAPTCHA в форму регистрации

Сообщение ykolesnikov » 03 сен 2014, 15:27

Такой документации нет в природе. Это HTML код, в основном. Поля из таблиц OTRS и параметры переданные из .pm модулей. Более сведущие в этом коллеги меня поправят. :oops:
Кроме того, касательно несовпадения кода модулей взятые из форума - обращайте внимание на время написания постов и версии о которых идет речь. И еще. В OTRS есть ряд модулей с одинаковыми именами, но расположенные в разных папках. Может в этом причина расхождений.
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

stariy125@yandex.ru
OTRS Новобранец
Сообщения: 34
Зарегистрирован: 19 дек 2011, 14:02
Поблагодарили: 1 раз

Re: Как добавить reCAPTCHA в форму регистрации

Сообщение stariy125@yandex.ru » 03 сен 2014, 17:01

1. Времени действительно прошло много, но вроде как статья применима к 3.0
2. Файлы точно те, т.к. только для Layout.pm есть аналог (он в папке для StrwberryPerl лежит)
3. Может есть какой другой вариант капчи (именно капчи, т.к. отключать самостоятельную регистрацию не вариант)?
4. Такой документации нет в природе. Это HTML код, в основном. Поля из таблиц OTRS и параметры переданные из .pm модулей. Более сведущие в этом коллеги меня поправят. я как то так себе это и представлял.
5. усиливаются подозрения, что нельзя использовать внешний IP для получения РЕкапчи от гугла. Нужно использовать именно доменное имя
OTRS 3.3.13
CentOS7/Postgre 9.3
Windows 2012 R2/MS SQL 2012 Express (11.0.2100.60)

stariy125@yandex.ru
OTRS Новобранец
Сообщения: 34
Зарегистрирован: 19 дек 2011, 14:02
Поблагодарили: 1 раз

Re: Как добавить reCAPTCHA в форму регистрации

Сообщение stariy125@yandex.ru » 09 сен 2014, 16:06

На текущий момент задача так и не решена... продолжаю поиски
OTRS 3.3.13
CentOS7/Postgre 9.3
Windows 2012 R2/MS SQL 2012 Express (11.0.2100.60)

stariy125@yandex.ru
OTRS Новобранец
Сообщения: 34
Зарегистрирован: 19 дек 2011, 14:02
Поблагодарили: 1 раз

Re: Как добавить reCAPTCHA в форму регистрации

Сообщение stariy125@yandex.ru » 12 сен 2014, 13:32

Вставляем код

Код: Выделить всё

            <tr>
		               <td>&nbsp;</td>
               <td><script type= "text/javascript">
var RecaptchaOptions = {
   lang : 'ru',
};
</script>
<script src="http://www.google.com/recaptcha/api/challenge?k=public_key" type="text/javascript"></script>
<noscript><iframe frameborder="0" height="300" src="http://www.google.com/recaptcha/api/noscript?k=public_key" width="500"></iframe>
<textarea cols="40" name="recaptcha_challenge_field" rows="3"></textarea><input name="recaptcha_response_field" type="hidden" value="manual_challenge" /></noscript>
</td>
            </tr>
и получаем рабочую капчу... но она частично не отображается - лечу это.
OTRS 3.3.13
CentOS7/Postgre 9.3
Windows 2012 R2/MS SQL 2012 Express (11.0.2100.60)

stariy125@yandex.ru
OTRS Новобранец
Сообщения: 34
Зарегистрирован: 19 дек 2011, 14:02
Поблагодарили: 1 раз

Re: Как добавить reCAPTCHA в форму регистрации

Сообщение stariy125@yandex.ru » 15 сен 2014, 13:46

Вот собственно о чем писал ранее
CreateUserCaptcha.PNG
CreateUserCaptcha.PNG (17.66 КБ) 8224 просмотра
как видно форма капчи отображается не полностью. При этом под формой капчи есть ещё кнопка Создать)))
OTRS 3.3.13
CentOS7/Postgre 9.3
Windows 2012 R2/MS SQL 2012 Express (11.0.2100.60)

mukexa
OTRS Новобранец
Сообщения: 148
Зарегистрирован: 30 апр 2013, 19:08
Откуда: Украина, Киев.
Поблагодарили: 1 раз

Re: Как добавить reCAPTCHA в форму регистрации

Сообщение mukexa » 16 сен 2014, 10:43

может статься так, что блок куда вы капчу лепите ограничен в размерах(в данном случае высоте) посему всё что "ниже" не видно.
OTRS 5s, Ubuntu 12.04

stariy125@yandex.ru
OTRS Новобранец
Сообщения: 34
Зарегистрирован: 19 дек 2011, 14:02
Поблагодарили: 1 раз

Re: Как добавить reCAPTCHA в форму регистрации

Сообщение stariy125@yandex.ru » 16 сен 2014, 13:58

mukexa » Сегодня, 11:43
может статься так, что блок куда вы капчу лепите ограничен в размерах(в данном случае высоте) посему всё что "ниже" не видно.
Так оно и есть ограничение 260 px - видимая зона.
Увеличение данной зоны приводить к тому, что авторизация и восстановление пароля отображаются на одной старинце (это и так одна страница, но в отображаемой зоне отображаются эти два раздела)
Пытался сделать настройки зоны видимости для регистрации отдельно от авторизации и восстановления (в файле c таблицей стилей CSS) - результата не дало
OTRS 3.3.13
CentOS7/Postgre 9.3
Windows 2012 R2/MS SQL 2012 Express (11.0.2100.60)

stariy125@yandex.ru
OTRS Новобранец
Сообщения: 34
Зарегистрирован: 19 дек 2011, 14:02
Поблагодарили: 1 раз

Re: Как добавить reCAPTCHA в форму регистрации

Сообщение stariy125@yandex.ru » 17 сен 2014, 10:13

Решено.
Для винды путь к необходимому файлу:
C:\Program Files (x86)\OTRS\OTRS\var\httpd\htdocs\skins\Customer\default\css\Core.Login.css
БЫЛО:
#Slider {
margin-bottom: 34px;
width: 642px;
height: 260px;
overflow: hidden;
}

#Login,
#Reset,
#Signup {
width: 500px;
height: 260px;
padding-left: 142px;
position: relative;
}
СТАЛО:
#Slider {
margin-bottom: 34px;
width: 642px;
height: 460px;
overflow: hidden;
}

#Login,
#Reset,
#Signup {
width: 500px;
height: 460px;
padding-left: 142px;
position: relative;
}
OTRS 3.3.13
CentOS7/Postgre 9.3
Windows 2012 R2/MS SQL 2012 Express (11.0.2100.60)

Ответить