28 Березень 2012
38 892
Рубрика: код

Возможные ошибки с установкой CallMe.js

Если у вас не получается установить скрипт, самое время почитать этот пост. Здесь собраны основные ошибки, которые возникают при установке.

UPDATED 2014-03-19

callme errors

В догонку к предыдущему посту придётся создать и этот, куда я буду складывать вопросы, которые возникают у пользователей при установке CallMe. Естественно, с решениями. Пост будет пополняться по мере нахождения багов и фич.

Не открывается *.html

В браузере не открывается файл с расширением *.html, ошибка 404 или открывается любая из страниц сайта

В файле .htaccess стоит запрет на открытие html-файлов напрямую, такое иногда встречается в некоторых cms. Вы можете проверить, открыв файл .htaccess в корне вашего сайта. Там будет что-то похожее:

RewriteRule ^(.*).html(.*)$ index.php [L]

Решение: переименуйте html-файл, смените расширение с html на php и в .js найдите функцию, которая вставляет форму на сайт и замените там расширение на .php.

Работает только на стартовой

На стартовой скрипт работает, а на остальных висит отправка и ничего не происходит.

В html вашего сайта может быть указан параметр base href. Обычно он мало чем вам поможет, а иногда ещё и навредит, как в случае с base href=’http://***.ru/index.php/icons’. Если это не противоречит вашей вёрстке, удаляйте эту строку из темплейтов, в большинстве случаев вообще ничего не поменяется. Если так сделать не получится, отредактируйте js-файлы скрипта и замените все относительные адреса на абсолютные. Например, /callme/callme.js будет заменено на http://***.com/callme/callme.js.

Кнопка не реагирует на клик

Кнопка «Перезвони мне» справа появилась, но не реагирует на клик.

Это может быть по многим причинам. Одна из них: закачаны не все файлы скрипта, либо же закачаны не полностью. Для нормальной загрузки лучше пользоваться не веб-загрузчиками, которые могут фильтровать загружаемый контент, а вручную по ftp. Рекомендую программу WinSCP, CyberDuck или FileZilla.

Для смены электропочты и редактирования скрипта всегда пользуйтесь хорошим редактором кода. Например, Sublime Text, Coda, Notepad++, HTMLPad. Не пользуйтесь стандартным блокнотом (почему?).

Форма отображается внизу страницы

Форма появилась, но не реагирует на клики и висит внизу страницы.

Не загружены или не подключены файлы сss. Убедитесь, что css-файлы лежат в папке /сallme/ либо в любой другой и путь к ним указан верно.

Если у вас OpenCart, поля формы могут быть половинной ширины, так как стили магазина обрабатывают все текстовые поля, в т.ч. CallMe. Решение подсказал userV, нужно в /templates/**/style.css добавить !important перед точкой с запятой для всех стилей текстовых полей.

Не приходят уведомления на почту

Всё работает, но письмо на почту не приходит.

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

Второй вариант: на хостинге может быть выключена функция php sendmail, в таком случае нужно связаться с хостером и попросить включить.

Третий вариант: проверьте правильность адреса почты.

“Висит” отправка

Появляется слово “Отправка запроса” и ничего не происходит.

Вы неправильно отредактировали /lib/send.php и он вместо сообщения об отправке выдаёт error. Чтобы убедиться, откройте файл /callme/lib/send.php в браузере и убедитесь, что он не выдаёт ошибок php.

Вариант №2: вы добавили вывод jQuery вручную после /callme/callme.js. Откройте тестовую страницу по адресу /callme/index.html – если отправка работает, проблема с повторным вызовом jQuery. Если не работает — проблема с send.php.

Вариант №3: у вас устаревшая версия jQuery. Решение: обновите до версии не менее чем 1.7.2 либо воспользуйтесь инструкцией.

Вариант №4: иногда адрес отправителя письма должен быть зарегистрированным ящиком на хостинге. Например, здесь, выделено красным.

Вариант №5: встречается реже, но бывает. В версии 1.9.0 была добавлена функция отображения города, из которого отправляется уведомление. Данные вычисляются по ip и из динамического ответа сервиса freegeoip.net. В том случае, если у вас выключена функция json_decode, ваш файл send.php будет выдавать ошибку 500. В таком случае нужно или попросить хостера включить функцию, или убрать декодирование и отправки данных, нужно найти строки:

$ip = $_SERVER['REMOTE_ADDR'];
 $geo = file_get_contents('http://freegeoip.net/json/'.$ip);
 $geo = json_decode($geo, true);

И заменить их на

$geo = $_SERVER['REMOTE_ADDR'];

Вариант №6: Письмо приходит, но сообщение об отправке не выдается. Причина: устаревшая версия php или запрет на функцию file_get_contents. Воспользуйтесь аддоном Firebug (в Firefox) или встроенной проверкой кода (Chrome). Откройте response для файла send.php и посмотрите, какой ответ присылает этот файл. Там может быть нечто похожее на:

Warning: file_get_contents(): ... is disabled in the server configuration by allow_url_fopen=0...

Тогда в send.php нужно отключить функцию file_get_contents. У вас не будут работать отправка sms и выяснение города, откуда была отправка.

Вариант №7: Неправильно указан отправитель. Обратите внимание: после отправителя по умолчанию (noreply) добавляется домен сайта. Если вы настраиваете smtp, дополнительно домен указываться не должен. Распространенная ошибка встречается в таком формате:

$from = "nasutkivminske@gmail.com".$HTTP_HOST;

Вместо этого нужно:

$from = "nasutkivminske@gmail.com";

Проблемы с кодировкой

Скрипт работает нормально, а некоторые другие выдают неправильную кодировку

Сайт в кодировке Win-1251, а скрипт в utf-8. И чтобы не было конфликтов, в callme.js я указал, что ajax-запросы должны отправляться строго в utf-8. Ваше голосование работает тоже с асинхронной передачей данных, соответственно и там кодировка меняется.

Надо сделать следующее:

Перекодировать (пункт “кодировка” в Notepad++) файлы:

  • /callme/js/callme.js
  • /callme/f.php

После этого в callme.js  закоментировать такую строку:

contentType: "text/html; charset=utf-8",

Ничего не помогает

Нашёл ошибку, все сделал как указано в инструкции, обновил все файлы, но проблема осталась.

Не забывайте чистить кэш. Как браузерный, так и серверный, если ваша CMS это позволяет.

Тепер я хочу бачити коментарі 543