Блог по продвижению сайтов Блог по SEO

В Opencart не работает и не показывается каптча в товаре

Просмотров: 5006

При переносе магазина на новый хостинг у меня почему-то перестала работать каптча в отзывах магазина на Opencart CMS. Причем на оригинальном магазине все работало (файлы не менялись), а на новом уже не показывались цифры, которые нужно было вводить. Пришлось гуглить и решать эту проблему.

Я решил просто найти в поиске владельцев магазинов на CMS Opencart (я использовал на момент написания статьи последнюю версию OcStore 1.5.5.1.2), у которых как и у меня, перестала показываться каптча и пробовать их способы решения этой задачи.

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

Не работает каптча

Путь к изображению каптчи

Итак, первое что нужно сделать, проверить путь, который ведет к картинке каптчи в отзывах товарах.

Путь к картинке прописывается в файле /catalog/view/theme/default/template/product/product.tpl и выглядит обычно вот так: img src="index.php?route=product/product/captcha"

Естественно, для правок вам понадобится доступ к FTP (что это такое)
На что правим?

Мне помогло исправление на img src="index.php?route=information/contact/captcha"

Кроме того, вы можете попробовать указать прямой путь к сайту, например, img src="https://moytop.com/index.php?route=information/contact/captcha", где вместо moytop.com - адрес вашего сайта. И наоборот, если был указан прямой путь с доменом сайта - укажите относительный путь без домена сайта.

Читайте также:  Переезд магазина Opencart на SSL сертификат или меняем HTTP на HTTPS

Редактирование файла каптчи

Если манипуляции с путями не помогли, попробуйте проверить, а на месте ли сам файл, который отвечает за правильную работу каптчи.

Он находится вот тут: /system/library/captcha.php

Если он у вас отсутствует или отличается по размеру от оригинала из соответствующего дистрибутива (или исходной копии сайта) - замените его, предварительно сделав бекап текущего файла.

После каждой манипуляции проверяйте каптчу - не появилась ли она на странице товара?

Если не появляется попробуйте внести вот такие изменения в файл captcha.php:

1Найти часть кода:

function __construct() {
$this->code = substr(sha1(mt_rand()), 17, 6);
}

2Заменить на такой вариант:

function __construct() {
  $this->code = substr(sha1(mt_rand()), 17, 6);
  $out = ob_get_contents();
  $out = str_replace(array("\n", "\r", "\t", " "), "", $input);
  ob_end_clean();
}

3Если не поможет, то на такой вариант:

function __construct() {
  $this->code = substr(sha1(mt_rand()), 17, 6);
  $out = ob_get_contents();
  $out = str_replace(array("\n", "\r", "\t", " "), "", $this->code);
  ob_end_clean();
}

 

Если ничего из перечисленного не помогает добиться появления каптчи, тогда попробуйте еще вот такое изменение сделать с каждым из приведенных выше вариантов:

Поменять код header('Content-type: image/jpeg'); на header('Content-type: image/png'); а чуть ниже: imagejpeg($image); на imagepng($image);

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

Правильные кодировки в UTF-8

При редактировании файлов php важно их сохранять в формате UTF-8 (там есть вариант с BOM или простой/без BOM - выбирайте именно простой, без BOM).

Читайте также:  Как настроить пересылку электронной почты в телеграм?

Поэтому попробуйте открыть и заново сохранить в UTF-8 без BOM следующие файлы:

  • /system/library/response.php
  • /system/library/captcha.php
  • /catalog/view/theme/default/template/product/product.tpl

Я использую редактор Notepad++ (ссылку на него уже давал выше в статье про FTP).

Удаление кодов сервисов

  • Если каптча перестала показываться буквально недавно, вспомните - может вы добавляли коды соцсетей, Google аналитики, Яндекс метрики, Live Chat и т.п. сервисы.
  • Уберите все коды и проверьте - каптча показалась?
  • Если да, то возвращайте коды по одному и когда найдете тот, который влияет на отображение каптчи в вашем магазине, то отключите именно его.

Попробуйте эти рекомендации, если какая-то из них сработала, порекомендуйте статью в соцсетях или проголосуйте звездочкой в рейтинге, спасибо!

Ну а если не хотите заморачиваться со всеми этими исправлениями — покупайте готовый магазин Opencart у меня, там уже все установлено и настроено.

Полезный совет: Нажатие клавиш "WIN + D" позволяет быстро скрыть текущие окна и перейти к рабочему столу Windows.

Блог — Сергея Арсентьева 📈
image
Сергей Арсентьев
Всего материалов на сайте: 240
Активных комментариев: 3 500
Работает онлайн: 10.7 лет
Читателей за это время: 2 473 492
Я в соцсетях —
Фото
Бесплатный видеокурс для начинающих. Что такое фриланс, можно ли на нем зарабатывать и сколько?
Бесплатно Подробнее
Фото
Бесплатная мини книга для тех, кто хочет заказать сайт, но растерялся во множестве CMS и вариантов выбора.
Бесплатно Подробнее
Фото
Пошаговый видеокурс "Как работать в Опенкарт" с уроками по добавлению товаров и статей.
Комментариев 6
  • Вячеслав

    У мена OCStore 1.5.4.1 помогло вот это: img src="index.php?route=information/contact/captcha"

    Комментировать
  • Александр
    Александр

    Спасибо! Выручили, первый вариант помог!

    Комментировать
  • ыва
    ыва

    Помог вариант под цифрой 3. Спасибо! :yes:

    Комментировать
  • Ирина
    Ирина

    А у меня после установки магазина капча ен показывалась в контактах, и вариант номер 1 помог. А потом сайт переехал на другой хостинг - и капча снова пропала. Тогда помог анти-вариант номер 1, т..е. возврат к тому, что было до.
    АТк и осталось загадкой, почему одному хостеру надо одно, другому другое, но автору спасибо - помог дважды.

    Комментировать
  • Георгий
    Георгий

    Первый вариант замены кода капчи помог! Спасибо, очень полезная статья!

    Комментировать
  • Александр
    Александр

    Огромное спасибо автору. Долга мучался с этой проблемой. Помог первый вариант замены кода капчи!

    Комментировать
Смотреть еще комментарии
Добавить свой комментарий