Назар Токар
Опубліковано: 28 Березня 2012
Оновлено: 26 Серпня 2017

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 = "[email protected]".$HTTP_HOST;

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

$from = "[email protected]";

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

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

Сайт в кодировке 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 это позволяет.

Засновник і керівник видання Tokar.ua. Програміст, адміністратор української Вікіпедії.
← Тисни «Лайк», щоб читати нас у Фейсбуці
Поширити у Фейсбуці
Надіслати у Messenger
Надіслати в Telegram
Надіслати у WhatsApp
Зберегти в Pocket
Обговорення

  1. Владислав

    Здравствуйте. При установке возникла следующая проблема: сайт на WP, нестандартная тема isle-shop, при установке кнопки в районе формы вариативного товара, ваша копка отправляет товар в корзину и ваша форма не появляется, а при выносе кнопки вне формы woocomerce кнопка не работает. Не подскажите в чем может быть проблема? Спасибо!

  2. Роман

    Хочу подключить скрипт к сайту. сайт на WP, где можно прочитать простую инструкцию, чтобы подключить самостоятельно? Возможно скрипт доступен как плагин ?

  3. Евгений

    Назар Токар читаю комментарии и вижу, что когда у тебя нет ответа на вопрос пользователя, ты отсылаешь на инструкцию, где также ничего нет. Что за ерунда? Ты можешь ответить: Почему добавляя поле количество, если проставить цифрой, то ничего не придет? И второй вопрос, можно ли в форму поставить капчу?

    1. А чому на «ти», ми хіба знайомі? І таки так, ви будете сміятись, але відповіді на обидва ваші запитання є на форумі і також на getcallme.com. Тому я не витрачаю свій час, а пропоную користувачеві САМОСТІЙНО знайти відповідь.

  4. Сергей

    продолжаю тестить…
    на мобильных устройствах очень криво отображается форма(не видно половину поля и на всю ширину экрана). Даже с вашего сайта такая же проблема, а я думал у меня со стилями что-то не так….
    прилагаю скриншоты
    один с Iphone другой с Android

    1. Де скріни?

    2. Сергей

      не смог к вам загрузить так что вот ссылки
      http://picua.org/img/2017-07/19/xbej41yjuoaof0c179foma6vx.jpg
      http://picua.org/img/2017-07/19/cm3jxoz5vui52uaono16ulvfy.jpg

    3. Ширина правильна, а висоту полів відредагую, дякую.

    4. Сергей

      спасибо.
      скажите пожалуйста где и какие параметры отредактировать чтоб ширину изменить на мобильном устройстве, я б для себя всётаки уменьшил.
      а насчёт моего предыдущего сообщения? про поле “количество” которое я добавил

  5. Сергей

    Спасибо за скрипт, работает хорошо. Но обнаружил такой баг..
    Добавил поле “Количество”
    Так вот если в это поле вписать цифру 1 или 2 или 22 или 35 то ничего на почту не получу, а если вписать например слово “два, три, пять” или число 3х или 4х значное то приходит на почту.
    Помогите исправить пожалуйста.

  6. Юрий

    Здравствуйте, Назар. Скрипт установил. Правки в send.php внес. Почта на mail.ru Стал хорошо, но письма все-таки не приходят. Сайт на joomla 2/5. Там уже стоит один модуль обратного звонка (в шапке на главной), он работает нормально.

  7. Андрей

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

  8. Андрей

    Добрый день!
    Получил не стандартную ошибку – после установки скрипта обязательными стали все поле без *, а поле телефона(я оставил базовую настройку, только удалил пару полей) – наоборот необязательным

  9. Максим

    Добрый день.
    buyme.js:272 Uncaught TypeError: Cannot read property ‘length’ of undefined
    На опенкарте 2.2 со стороней темой.
    Можете подсказать. Спасибо
    http://madcap.com.ua/product/product?product_id=275

    1. Для імені товару не додано відповідного класу.

  10. А таке запитання: чи можливо прописати декілька адрес отримувачів повідомлення. Якщо потрібно, щоб лис приходив на дві електронки чи можливо так зробити?

    1. Звичайно, просто через кому їх треба записати.

  11. Блін, що я вже тільки не робив. Не відправляється повідомлення і все. Якщо роблю через Яндекс то тупо зависає, якщо через власний поштовик, то швиденько пише, що все відправлено, але нічого не приходить.
    Сайт http://budvin.com.ua

    1. А ви спробуйте smtp налаштувати. Або спитати у хостера, чи увімкнено функцію php sendmail.

    2. Ось що він мені відповів: “Попробуйте использовать функции php mail(), а не sendmail или протокола SMTP. php mail() гарантированно должен работать.”

    3. Це воно і є, має працювати, якщо налаштовано правильно і якщо хостер каже як воно є насправді.

    4. Цікаво, що якщо я використовую модуль зворотнього зв’язку вордпераса, то повідомлення йдуть, а з Callme десь пропадають. Та й так видно, що тільки натиснув на кнопку і зразу відправлено, навіть не задумується

    5. Запрацювало, правда тепер сам не розумію від чого. Ну й ладно, робить та й добре.

  12. Роман

    “Откройте тестовую страницу по адресу /callme/index.html” блин, исправьте в инструкции на index.php …пока не дошло, что вы расширение не правильно указали, чуть монитор не расфигачил…не открывается и не открывается..да что ты будешь делать)))

  13. boomclap

    Прошу прощения. мх записи не обновились еще. Вопрос снят.

  14. boomclap

    Не приходят уведомления на доменную почту яндекса. На gmail приходили. А так сам скрипт отличный.

  15. Здравствуйте. Сегодня скачал скрипт. Подключил к MODX Revolution вручную на чистую страничку с чистым шаблоном. Исправил send.php. И ведь работает! Спасибо.
    Но с самого начала, когда я ещё не правил под себя config.js, увидел что поле телефона не является обязательным!
    Оно не подсвечивается красным и письма уходят без него. Хотя судя по описанию там правильно в нужном месте стоит *. Попробовал убрать звездочки у всех полей как написано – но телефон опять не стал обязательным. В общем получается, что у меня это поле нечувствительно к * и всегда является не обязательным.
    Сейчас я уже поменял тексты по умолчанию на свои, убрал панель, пробовал подключать по разному, результат тот же.

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

    Cпаcибо.

    1. Да, есть такой вопрос, будет исправлен в след. версии. Можете найти на форуме решение и исправить сами.

    2. Виталий

      Спасибо за добротный скрипт.
      Нашел решение где советуют убрать = , но это решение дает возможность в поле “Телефон” вводить все что угодно, может подскажите что поправить?

  16. не приходят сообщение на почту не могу найти причину!!!