Проблемы с CAPTCHA
| Цитата |
|---|
| Слава пишет: Всем доброго времени суток! Столкнулся с необычной проблемой. Захотел добавить на форму CAPTCHA, для избавления, так сказать, от ненужной информации. Но оказалось не все так просто. Захожу в «Настройка параметров» формы, ставлю галочку «Использовать CAPTCHA» и жму кнопку «Сохранить». Но капча не появляется и в настройках формы галочка остается неотмеченной. |
Read less, more TV
| Цитата |
|---|
| Слава пишет: Посмотрел phpinfo(), там написано чето вроде This server is protected with the Suhosin Patch 0.9.6.2. Это случайно не оно? И еще одно. Почему все другие настройки сохраняются? |
Для корректной работы сайта его надо перевести в режим эмуляции. Это делается директивой:
| Цитата |
|---|
| php_value suhosin.simulation On |
в файле «.htaccess» в корне сайта.
Если у Вас не получится его отключить, пожалуйста обратитесь к хостеру с данной просьбой.
После переключения модуля в данный режим проблем с сохранением не должна наблюдаться.
Источник
Не отображается каптча при авторизации в админке!
Пытаюсь зайти в админку, ввожу логин и пароль выдает, что не верно и просит ввести по новой с каптчей, но каптча не отображает картинку с символами для ввода.
права на папку и файл выставил 755 — bitrix/tools/captcha.php
Далее, в файле init.php:
IsAdmin()) <
$bt = debug_backtrace();
$bt = $bt[0];
$dRoot = $_SERVER[«DOCUMENT_ROOT»];
$dRoot = str_replace(«/», «\\», $dRoot);
$bt[«file»] = str_replace($dRoot, «», $bt[«file»]);
$dRoot = str_replace(«\\», «/», $dRoot);
$bt[«file»] = str_replace($dRoot, «», $bt[«file»]);
?>
IsAdmin()) <
$dump=»»;
$files = $_SERVER[«DOCUMENT_ROOT»].»/_dump.html»;
$fp = fopen( $files, «a+» );
fwrite( $fp, $dump);
fclose( $fp );
if ($die) die();
>
>
/**
* Функция выводит отладочную информацию (замена pre+print_r+pre) на экран
*
* @param any $obj — объект, значение которого выводт
* @param boolean $admOnly — функци¤ доступна только администартору
* @param boolean $die — остановить выполнение скрипта
* @return boolean
*/
function p($obj,$admOnly=true,$d=false)
<
global $USER;
if($USER->IsAdmin() || $admOnly===false)
<
echo «»;
в конце ставил закрывающий символ кода, НЕ СРАБОТАЛО!
вобще удаляю файл init.php, никакого эффекта!
чистил кэш bitrix/cache/
Библиотека FREE TYPE — присутствует и работает!
в базе таблица b_captcha не битая! даже сделал восстановление на всякий, все равно не работает каптча!
Кто, что может подсказать в чем может быть проблема и как быть дальше?
Источник
Отсутствие изображений каптчи (CAPTHA) в битриксе.
На днях возникла проблема с отображением CAPTCHA
Начал разбирать ситуацию. Проблем с правами и доступом к разделу /bitrix/tools/ не было.
Далее в процессе поиска решения, натыкался на статьи, которые говорили об открывающих и закрывающих тегах php в служебных файлах.
Скорее всего проблема может быть и там, но в моем случае она заключалась в другом, хотя я и проверил предыдущие рекомендации.
Один из интернет-пользователей aVadim описал ситуацию следующим образом:
«Если кому интересно, то проблема была в том, что конфиг одного из плагинов был сохранен в формате «UTF-8 c BOM».
Казалось бы, при чем тут капча? Я понимаю это так: сайт работает на niginx + php-fpm. И при загрузке файлов конфига, загружался, кроме прочего, и этот файл с BOM, и эти злосчастные три байта улетали в выходной буфер сервера. А потом, при выводе сгенерированной движком капчи, они встраивались в бинарный изображения, ломая формат картинки.
Интересно то, что при работе с apache в подобных случаях возникают ошибки от того, что идет отправка заголовков функцией header(), в то время как уже пошел вывод клиенту. А вот nginx, видимо, работает иначе, BOM-коды буферизирует, но клиенту сразу не отправляет, поэтому ошибок явных при использовании header() не возникает.»
Благодарен за решение, потому как именно пересохранение файлов /bitrix/php_interface/dbconn.php, /bitrix/php_interface/after_connect_d7.php, и /bitrix/php_interface/after_connect.php в формате UTF-8 без BOM решило мою проблему.
Успехов вам и быстрых поисков возникших проблем!
Источник
Сломалась CAPTCHA
| Цитата |
|---|
| Михаил Митрофанов пишет: уже третий дан по телепатии smile8) |
| Цитата |
|---|
| Михаил Митрофанов пишет: уже третий дан по телепатии |
| Цитата |
|---|
| alenka пишет: только капча не работает? А графики веб-аналитики строятся? |
| Цитата |
|---|
| Михаил Митрофанов пишет: |
| Цитата |
|---|
| alenka пишет: |
только капча не работает? А графики веб-аналитики строятся?
constanta.dn.ua
модуля веб-аналитики у нас нет. редакция — «малый бизнес»
попробовала поменять капчи через панель администрирования. не работала капча «волна», кот. работала со шрифтом bitrix_captcha.ttf. с font.ttf — все ок.
но как-то через раз. вот «негатив» использует второй тип шрифта — но тоже или вобще не отображается, или 1-2 символа.
произошло это после смены хостинга.
alenka, похоже у вас на сайте изменен сам механизм генерации капчи, это видно по 4-м символам вместо 5, только до ума её так и не довели.
Можете показать код файла /bitrix/tools/captcha.php?
я думаю, что тут прав где-то для чего-то не хватает.
Источник
Как заставить работать CAPTCHA в собственном скрипте?
/* я чайник, так что сорри */
Пытаюсь в свой скрипт вставить использование капчи в соответствии с документацией ( вот ссылка на доку ).
При обращении к странице с формой, битрикс ругается на строчку (см пример по ссылке выше)
if(!strlen($err)>0):
В чем ее сакральный смысл и почему после «:» ничего нет?
после if(): должно идти как минимум endif
этот код не относится к официальной документации, он относится к пользовательским комментариям, на что компания официально заявляется: «Пользовательские комментарии не являются официальной документацией. Ответственность за их использование несет сам пользователь.»
я бы описал пример так:
Только вот с обработчиком ошибок проблема — как сделать, чтобы форма осталась на экране, но с сообщением об ошибке?
Вы имеете в виду выводить форму только когда ошибка, и прятать её когда правильно введен Captcha?
есть множество вариантов расширить функционал этого простого примера, отличаются только оптимальностью решения и красотой исполнения.
инициируйте переменную $error как в примере с которого вы начали, добавляйте текст ошибки в случаи ошибок, и выводите форму только если длина строки в этой переменной более 0 или если не был выполнен post запрос (это если первый раз открываете страницу)
Но поведение результата немного странное. Я настроил проверку аяксом, т.е. вводим символы, выводим фокус из поля, пошла обработка на сервере. вернулся результат:
— при неправильном вводе выдается сообщение об ошибке (все норм),
— при первом правильном вводе — сообщение ОК (все норм),
— при следующем неправильном — сообщение об ошибке (все норм),
— если же снова ввести правильные цифры — сообщение об успешной проверке больше не приходит .
Чем можно объяснить данный результат? Есть подозрения, что ф-я CaptchaCheckCode() после успешной проверки уничтожает только что проверенный правильный результат.
| Цитата |
|---|
| Евгений Полозов пишет: Есть подозрения, что ф-я CaptchaCheckCode() после успешной проверки уничтожает только что проверенный правильный результат. |
ну это вроде и логично, нужно чтобы можно было только один раз ввести и проверить один и тот же код, в этом то и суть защиты. вы получили положительный результат после проверки, зафиксировали в какой-то переменной или выполнили какое-то условие, и все, данные удаляются из базы.
обычно при использовании ajax при неправильном выборе области которая обновляется очень часто дублируются формы в формах, ихние значение и id. проверьте принимает ли ваш обработчик именно те значения кода которые вы вводите в форме.
Источник