Разработка на 1С-Битрикс Михаил Базаров
Блог-note

CAPTCHA с возможностью обновления без перезагрузки страницы в 1C-Битрикс

Просмотров: 3668
Задача: Так как стандартная капча в 1С-Битрикс, может отобразиться не удачно (символы уходят за грань капчи или не удачно накладываются друг на друга), нужно дать пользователю возможность обновить ее, без перезагрузки страницы.
Обновляемая CAPTHCA в 1C-Битрикс

Обновление CAPTHCA с помощью js

Для реализации данной функциональности необходимо модифицировать код компонента, использующего CAPTCHA, следующим образом:

/* CAPTHCA */
if ($arResult["CAPTCHA_CODE"] <> ''):
    ?>
   <input 
        type="hidden" 
        name="captcha_code" 
        value="<?= $arResult["CAPTCHA_CODE"] ?>⁠"/>⁠
    <img 
        id="captcha_image" 
        src="/bitrix/tools/captcha.php?captcha_sid=<?= $arResult["CAPTCHA_CODE"] ?>⁠">⁠
    <small>⁠Нажмите на картинку, что бы обновить</small>⁠
    <input 
        type="text" 
        size="30" 
        name="captcha_word" 
        tabindex="<?= $tabIndex++; ?>⁠"
        placeholder="Символы с картинки" 
        autocomplete="off"/>⁠
    <script>⁠
        document.addEventListener('DOMContentLoaded', function () {
            var captchaImage = document.getElementById('captcha_image');
            if (captchaImage) {
                captchaImage.addEventListener('click', function () {
                    // Генерация случайного числа, чтобы избежать кеширования изображения
                    var randomNum = Math.random();
                    var newSrc = '/bitrix/tools/captcha.php?captcha_sid=<?= $arResult["CAPTCHA_CODE"] ?>⁠&' + randomNum;
                    captchaImage.src = newSrc;
                });
            }
        });
    </script>
<?
endif;
/* end CAPTHCA */

Этот код добавляет JavaScript, который регистрирует событие "click" на изображении CAPTCHA. В случае клика, генерируется случайное число (randomNum) для избежания кеширования изображения. Затем формируется новый URL с уникальным идентификатором CAPTCHA (newSrc). Новый URL присваивается свойству src изображения, что приводит к его обновлению.

Услуги

Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.

Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.

Включено в стоимость разработки

В цену уже заложено всё, что нужно для легального и быстрого запуска. Доплачивать за базовые вещи не придётся.

  • Лицензия и модули

    Лицензия на «1С-Битрикс» нужной редакции, дополнительные модули и видео-инструкции по работе с готовым проектом.

  • Скорость и SEO

    Оптимизация кода и сервера под быструю загрузку, базовая SEO-оптимизация и добавление сайта в поисковые системы.

Блог-note

Заметки по 1С-Битрикс