Просмотр полной версии : настройка captcha
Baltazarr
25.10.2006, 15:58
У меня проблемка: вот я прикрутил Tmailform поставил капчу (captcha).
В экстеншене поменял всё как надо:
// filling Captcha marker
if (t3lib_extMgm::isLoaded('captcha')) {
$markers['###CAPTCHA###'] = '<img src="'.t3lib_extMgm::siteRelPath('captcha').'captcha/captcha.php" alt="продублируйте символы в текстовом поле слева" />';
session_start();
$captchaStr = $_SESSION['tx_captcha_string'];
$_SESSION['tx_captcha_string'] = '';
} else {
$markers['###CAPTCHA###'] = 'captha error!';
$captchaStr = -1;
}
Картинку генерит нормально. Однако на условие, предложенное мне в доке к капче:
if (... ($captchaStr===-1 || ($captchaStr && $tipData['captchaResponse']===$captchaStr)) ...) {
...
}
Никак не реагирует...
И ещё: строка 'tx_captcha_string', которую экст рендерит потом в зашумленную картинку, когда мы её получаем из сессии для проверки условия, не идентична символам в саой картинке!
Плюс, я заметил при многократном вызове tx_captcha_string = сгенеренной строке из предыдущей сессии...
Кто-нибудь сталкивался с чем-нибудь подобным?
Baltazarr
25.10.2006, 17:55
Упс, народ - всё разрешилось. Забыл что все переменные получаем из глобального массива piVars :o
Есть такой экст - cr_tmailform_captcha. Судя по описанию должен добавить каптчу в Tmailform, но я что-то никаких изменений не заметил в работе.
Как его подключить? В шаблон добавил, а дальше?
Итак, установил я captcha)) Документации по работе с cr_tmailform_captcha нету, пришлось думать (!) в первую очерндь, немного порыться в исходниках и чуток смекалки.
Решил вот поделиться опытом, может кому и згодится.
1. Собсивенно TMailform скорее всего уже проинстален, осталось установить сначала freeCap CAPTCHA (sr_freecap), а потом cr_tmailform_captcha (последний зависит от первых двух!)
2. В доке по captcha написано, что в шаблон своего экста нужно вставить это:
<!--###CAPTCHA_INSERT### this subpart is removed if CAPTCHA is not enabled! -->
<div class="tx-your-extension-id-pi1-captcha">
<label for="tx_your_extension_id_pi1_captcha_response">###SR_FREECAP_NOTICE###</label>
###SR_FREECAP_CANT_READ###
<br />
<input type="text" size="15" id="tx_your_extension_id_pi1_captcha_response" name="tx_your_extension_id_pi1_pi1[captcha_response]" title="###SR_FREECAP_NOTICE###" value="">
###SR_FREECAP_IMAGE###
</div>
<!--###CAPTCHA_INSERT###-->
В нашем же случае немного видоизменим код:
<!--###CAPTCHA_INSERT### this subpart is removed if CAPTCHA is not enabled! -->
<tr><td colspan="2">
<div class="tx-your-extension-id-pi1-captcha">
<table>
<tr><td colspan="2">
<label for="tx_your_extension_id_pi1_captcha_response">###SR_FREECAP_NOTICE###</label><br />
###SR_FREECAP_CANT_READ###
</td></tr>
<tr><td colspan="2" style="color: red"><b>###CAPTCHA_ERR_TXT###</b></td></tr>
<tr>
<td valign="middle" width="150">
<input type="text" style="width: 150px;" name="tx_pilmailform_pi1[text][captcha]" title="###SR_FREECAP_NOTICE###" value="###CAPTCHA_VAL###">
</td>
<td align="left" style="padding-left: 55px;">
###SR_FREECAP_IMAGE###
</td>
</tr>
</table>
</div>
</td></tr>
<!--###CAPTCHA_INSERT###-->
В общем. я из своей верстки вырезать не стал, как пример использования получается, все table, td и иже с ними можно смело убирать. Здесь главное что:
- добавил маркеры ###CAPTCHA_ERR_TXT### и ###CAPTCHA_VAL###
- поставил для input - name="tx_pilmailform_pi1[text][captcha]"
С шаблоном все.
3. Теперь когда создаем элемент Tmailform на старнице сайта, там на закладке "Проверка полей" в поле Required values добавляем текст:
CAPTCHA_VAL; useCaptcha; text: Текст не соответствует слову на картинке
Теперь должно работать)
Возникли проблемы с добавлением CAPTCHA в модуль feuser_register.
Версия 2.5.5 вроде бы изначально поддерживает CAPTCHA, посмотрел код - да есть нужные вставки, но в шаблон нужно вставлять самому. Так вот вставляю в шаблон все как в документации, исправляю что нужно - не работает((
Возможно кто-то уже ставил CAPTCHA на feuser_register 2.5.5. Поделитесь как вы это сделали? какой именно код нужно вставить в шаблон?
и от чего может вылазить надпись - sorry, service is interrupted?
Убил почти день на эту фичу, но таки сделал... пришлось слегка менять код в feuser_register 2.5.5 (добиться корректной работы с тем, что есть не удалось), зато работает.
Кому вдруг понадобится - пишите ПМ, поделюсь наработками.
Лучше пришлите автору sr_feuser_register, чтобы в следующей версии баги были исправлены.
Мне кажется, то не баги, а я просто не смог разобраться))
Когда автор создавал это все, не просто ведь так строчки прописал в код, я думаю)
Там вся проблема в том, как подлючить CAPTCHA в шаблоне, и возможно еще правильно прописать какие-то настройки через TYPO3 - в документации об этом не упоминается((
У меня проблемка: вот я прикрутил Tmailform поставил капчу (captcha).
В экстеншене поменял всё как надо:
// filling Captcha marker
if (t3lib_extMgm::isLoaded('captcha')) {
$markers['###CAPTCHA###'] = '<img src="'.t3lib_extMgm::siteRelPath('captcha').'captcha/captcha.php" alt="продублируйте символы в текстовом поле слева" />';
session_start();
$captchaStr = $_SESSION['tx_captcha_string'];
$_SESSION['tx_captcha_string'] = '';
} else {
$markers['###CAPTCHA###'] = 'captha error!';
$captchaStr = -1;
}
Картинку генерит нормально.
У меня почему то картинку не генерит, выводит просто <img src="typo3conf/ext/captcha/captcha/captcha.php" alt="" /> Что я мог упустить не подскажите, кто сталкивался.
dmartynenko
01.03.2010, 13:00
Проверьте работает ли вообще ваш TYPO3 с картинками.
Возможно у вас не настроен путь к imagemagic или не установлен GD в PHP.
Нет, с этим все без проблем. В итоге на jquery сделал. Спасибо.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot