Добрый день. http://mostsakhalin.ru , капча находится справа, в форме «Проголосуй ЗА». Зараннее благодарен за советы. |
|
Добрый день, Дайте право «Чтение» на папку /bitrix/tools/ для не авторизованных пользователей. |
|
Права доступа на данную папку стоят 777, проблема остается. |
|
Антон Долганин Администратор Сообщений: 8512 |
#4 0 02.04.2009 04:59:29
Это системные права. А Михаил вам про права в Битриксе. Через визуальный редактор которые настраиваются. |
||
Михаил Митрофанов Администратор Сообщений: 1433 |
#5 0 02.04.2009 11:59:05
Точнее через файловый менеджер продукта: |
||
Через битрикс права доступа к папке для пользователя Everyone стоят «drwxrwxrwx». |
|
Так как решить данную проблему, может кто-нибудь подсказать? |
|
Антон Долганин Администратор Сообщений: 8512 |
#8 0 03.04.2009 08:04:31
Варианты решения: |
||
http://v-2-do29-d1247-241.webazilla.com/en/auth/?register=yes
— почему-то капча не отображается с первого раза, бывает, что надо обновить страницу несколько раз ( CTRL+F5 )? |
|
Михаил Митрофанов Администратор Сообщений: 1433 |
#10 0 18.11.2009 12:45:04 Библиотека FreeType установлена на сервере? Если да, то какая версия библиотеки? |
Проверяем права на хостинге
Особого внимания заслуживают следующие файлы и папки:
- /bitrix/tools/
- /bitrix/tools/captcha.php
- /bitrix/tmp/
- /bitrix/modules/main/tools/
- /bitrix/modules/main/tools/captcha.php
Права на них должны соотвествовать тем, что стоят у вас в данных константах в dbconn.php.
define("BX_FILE_PERMISSIONS", 0644); define("BX_DIR_PERMISSIONS", 0755);
Но для верности, можно поставить всем 0777 на время эксперимента.
Проверим наличие библиотеки FreeType
Тут, если не знаем как — нужно просто написать в тех. поддержку хостинга или обратится к системному администратору вашего хостинга / сервера.
Проверить наличие пустых строк в init.php
Иногда, это ломает капчу. Сделайте бекап файла и очистите его содержимое, залейте на сервер по FTP. Если после обновления страницы капча появилась, то удалите все пустые строчки(лишние табы, пробелы в первой строке) из файла и залейте его обратно.
23 апреля 2020
8354
Столкнулись с интересной проблемой на одном из клиентских сайтов. Не отображается изображение контрольного слова для проверки (captcha).
Многие владельцы сайтов на 1С-Битрикс не раз видели при входе в административный раздел сайта, в форме авторизации предложение «Введите слово на картинке».
Этот же механизм используется и в публичной части сайта при регистрации пользователей, авторизации. Но он как и всё остальное, может работать не корректно.
Сегодня столкнулись с проблемой, когда на сайте клиента картинка с кодовым словом просто не отображается. Ситуация решилась достаточно быстро, суть проблемы заключалась в лишнем выводе символов в файле /bitrix/php_interface/dbconn.php. В конце файла был просто символ пробела. Такая же проблема может возникнуть и файле /bitrix/php_interface/init.php. Эти файлы не должны выводить каких либо символов, строго php код.
Кстати говоря эта же ситуация может привести к тому, что сайт будет не корректно отображаться в браузерах при включенной компрессии на сайте.
Надеемся, что помогли Вам!
Отсутствие изображений каптчи (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 решило мою проблему.
Успехов вам и быстрых поисков возникших проблем!
Представляю Вашему вниманию короткую статью о том, как искать объяснение непонятных явлений в битриксе. В качестве примера приведу историю — когда-то, еще на заре изучения системы, мне удалось вывести в форме авторизации капчу. Причем как это вышло, выяснить не получилось. И вот сейчас, кастомизируя очередной шаблон компонента авторизации, обнаружился код ее выводящий. Спортивный интерес и отсутствие информации в официальной документации (хотя вполне может быть, я просто не нашел то что нужно) подтолкнули меня на маленькое расследование.
Первым делом, надо посмотреть в шаблоне компонента элемент массива, в котором приходит флаг показа капчи — несложно увидеть, что это $arResult[«CAPTCHA_CODE»]. Массив arResult формируется внутри компонента, поэтому следующим шагом стало изучение содержимого bitrix\components\bitrix\system.auth.form\component.php. Найденный фрагмент кода показал, что за капчу отвечает функция NeedCAPTHAForLogin, которая по логину пользователя решает, выводить ее или нет.
if($APPLICATION->NeedCAPTHAForLogin($arResult["USER_LOGIN"])) { $arResult["CAPTCHA_CODE"] = $APPLICATION->CaptchaGetCode(); } else { $arResult["CAPTCHA_CODE"] = false; }
Api-help битрикса о назначении NeedCAPTHAForLogin рассказывать отказался, в настройках пользователя заветной галочки не оказалось. Остается найти и посмотреть исходник этой загадочной функции. С помощью Total Commander (или аналога) в директории bitrix\modules\main\ ищем файлы, содержащие текст NeedCAPTHAForLogin. Напомню, что такие исследования доступны счастливым обладателям версии в исходных кодах. Итак, результат поиска — файлик \bitrix\modules\main\classes\general\main.php. Находим кусок кода функции NeedCAPTHAForLogin, который ставит все точки над i
if(strlen($login) > 0) { $rsUser = CUser::GetList($o, $b, array("LOGIN_EQUAL_EXACT" => $login)); $arUser = $rsUser->Fetch(); if($arUser) { $arPolicy = CUser::GetGroupPolicy($arUser["ID"]); $POLICY_ATTEMPTS = intval($arPolicy["LOGIN_ATTEMPTS"]); $USER_ATTEMPTS = intval($arUser["LOGIN_ATTEMPTS"]); } }
Оказывается, вывод капчи в форме авторизации регулируется в настройках групповой политики неприметной галочкой в самом конце списка.
Приведенный способ иногда действует даже быстрее поиска по документации разработчиков. К тому же, дает возможность посмотреть на систему изнутри, понять принципы ее функционирования, и следовательно, писать более адаптированный код.