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. Програміст, адміністратор української Вікіпедії.

Коменти
Сергей

Здравствуйте!
Спасибо за такой замечательный скрипт!
При установке были проблемы с кодировкой, решил их благодаря этому разделу. Но! непонятный момент остался. Связан с тем, что у меня на сайте файлы в кодировке “UTF-8 без BOM”, а Ваши исходники – в кодировке “UTF-8”. Перекодировал все в “UTF-8 без BOM” – и кодировка формы стала нормальной. В связи с этим вопрос – а которая из них более правильная? Может стоит переконвертить весь сайт просто в “UTF-8”? Я встречал где-то в сети упоминание, что при работе с Notepad++ всегда нужно ставить “UTF-8 без BOM”. Хотелось бы услышать мнение Гуру по этому вопросу.

Назар Токарь

@Сергей, нет понятия правильной кодировки. Если все тексты отображаются корректно на разных устройствах и в разных программах, кодировку нет необходимости менять.

И используйте главное правило программиста: если работает, не трогай :)

Игорь

Отвечаю на свой же вопрос. Про бракозябры в форме, когда
она открывается. Мой ответ пригодится всем тем, у кого сайты
сделанны на движке Joomla. Так вот, если у вас после установки
скрипта в форме появляются непонятные симвалы, зайдите по FTP в
корень вашего сайта и в файле (.htaccess) добавьте в самом низу
(AddDefaultCharset utf-8). Если у кого нет такого файла то просто
переименуйте (htaccess.txt) на (.htaccess) без всякого
разрешения

Владимир

Здравствуйте кважаемый Назар! У меня не передаётся название
товара class=b1c-name, в форму заказа. Название обернуто в divс
классом, все по инструкции. Помогите разобратся
пожалуйста.

Назар Токарь

Добрый вечер. Возможно, не обернут товар своим классом или название находится вне товара. Или еще другие варианты. Мне нужна ссылка на сайт, чтобы увидеть причину.

Khakimov Anton

Добрый день, Назар.
Установил скрипт, внешне все работает, но на почту не приходят уведомления. Не приходят не на хостинговую, не на Gmail. Sendmail на хостинге работает, в логе появляются отметки. На localhost в Denwer в темпе письма тоже появляются. Не могу понять в чем причина. Сайт http://elements5.su/.
Заранее спасибо.

Назар Токарь

@Khakimov Anton, ссылка мне ничем не поможет. Настройте smtp.

Ярослав

Доброго! Форма работает, но на почту не приходят уведомления. На хостинге сказали, что отправка писем через их релеи пока невозможна и просят использовать сторонние почтовые серверы. Где их можно прописать в скрипте?

Назар Токарь

@Ярослав, испоьзуйте отправку через SMTP. Я писал инструкцию, как это делается.

Сергей

не приходит уведомление на почту. спам нет, правильный
емэйл, php sendmail включен

Александр

Notice: Undefined index: hr in /home/itdev/www/furniture/callme/f.php on line 69

Назар Токарь

@Александр, отключите предупреждения в php.ini или после

if ($_GET["calltime"] == 1) {

добавьте

$hr = "";

Вячеслав

Установил скрипт все работает, но когда нажимаю “Заказать обратный звонок” форма оказывается как бы вторым слоем, под моим меню

Дмитрий

Даже Ваша тестовая страница без единого изменения не
работает.

Дмитрий

Здравствуйте! Скрипт ваш по каким-то причинам отказывается
работать на локальном хосте. Хотя мой самописный скрипт работает и
успешно отправляет письмо. Открывается, но принажатии кнопки
отправить глохнет(

Назар Токарь

@Дмитрий, беда… чем я могу помочь?

Андрей

Делал все как положено, но перекодировки не помогают. Уже
даже не знаю что делать. Сайт http://www.zoras.ru

Андрей

@Андрей, только отослал и следующим же движением нашел
ошибку. Была закоменчена строка header(‘Content-Type: text/html;
charset=UTF-8’); в файле f.php Щас все работает. Спасибо в любом
случае.

Дмитрий

Здравствуйте! Не лады с кодировкой. Сделал все по Вашей
инструкцией. Что-то подскажете?

Ivan

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

Назар Токарь

@Ivan, я ответил вам на почту, откуда вы присылали запрос. Если нет письма, напишите на [email protected], я займусь.

Ivan

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

Назар Токарь

@Ivan, читайте форум.

Ivan

здравствуйте столкнулся с двумя проблемами
1 на главной странице скрипт вообще не открываеться на всех остальных проблем нет (что делать?)
2 почемуто не меняеться кодировка, делал все как описано потратил целый день поменялась только время звонка все остальное не читабельно (что делать?)

Назар Токарь

@Ivan, на стартовой дополнительно подключается jq версии 1.2.6. В остальном чем могу помочь? Инструкции на форуме, пользуйтесь.

Илья

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

Илья

Форма отображается внизу страницы Установил callme, все
работает отлично, темплейт default очень супер! Добавил на страницу
buyme и начались проблемы. Формы callme и buyme отображается внизу
страницы. Залез в CallMe/templates/default/style.css Заменил во
всех строках “;” на “!important;” кроме “display: none;” и
“display: inline;” и “display: block;” Форма callme вылечилась
(форма при прокрутке отображается строго по центру экрана), а форма
buyme осталась больной. Так же при отображении формы callme
“#cme_back { background: #333 !important; при включённом height:
100% !important; отображает затемнение только в верхней части
страницы, при отключении height: 100% !important; затемнение
становится на всей странице. Как корректно и рационально настроить
затемнение? Залез в buyme/templates/default/style.css Заменил во
всех строках “;” на “!important;” кроме “display: none;” и
“display: block;” Пропало затемнение. Позиция формы buyme,
относительно длинны всей страницы, изменилась “по центру” и
расползлись строки (Ваше имя, Телефон и тд.), при прокрутке
страницы, форма остаётся на месте (уезжает вместе с прокруткой).
Что делать? Где лечить?

massim

Просто мольба о помощи!
Делал все как описано в правилах установки. Но ничего не отображается.
сайт all4vaz.ru
Очень много перепробовал… Пожалуйста помогите.

Назар Токарь

@massim, во-первых, не забывайте чистить кэш, все отображается. Во-вторых, чтобы избежать ошибок, пользуйтесь свежей инструкцией.

Антон

спасибо все получилось))

Антон

[email protected] SMTP error from remote mail server after end of data: host mxs.mail.ru [94.100.176.20]: 550 Message was not accepted -- it contains invalid headers. More specially, 'From:' header must match user you are sending mail from. See http://help.mail.ru/mail-help/mailer/popsmtp for details. ------ This is a copy of the message, including all the headers. ------ Return-path: Received: from apache by oimweb.ru with local (Exim 4.72) (envelope-from ) id 1VO4cm-00050R-On for [email protected]; Mon, 23 Sep 2013 15:48:20 +0400 Date: Mon, 23 Sep 2013 15:48:20 +0400 Message-Id: To: [email protected] Subject: CallMe: п╬п╠я─п╟я┌п╫я▀п╧ п╥п╡п╬п╫п╬п╨ X-PHP-Originating-Script: 506:index.php Content-type: text/html; charset=utf-8 From: CallMe 1.9.1

Не могу понять, в чем тут проблема, не подсажете?

Назар Токарь

@Антон, mail.ru не пускает письма, в которых в поле “от” указан отправитель, отличный от указанного почтового ящика. В index.php в
$from = "[email protected]".$HTTP_HOST; // отправитель
укажите свой ящик

Антон

@Назар Токарь, письма попадают в спам не работет ошибка та же

Назар Токарь

@Антон, так не работает или попадают в спам? Это совершенно разные вещи.

Антон

@Назар Токарь, письма приходят в спам в них ничего не понять кроме цифр которые ввел пользователь! вроде все делал по инструкции

Антон

@Антон,

This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: [email protected] SMTP error from remote mail server after end of data: host mxs.mail.ru [94.100.176.20]: 550 Message was not accepted -- it contains invalid headers. More specially, 'From:' header must match user you are sending mail from. See http://help.mail.ru/mail-help/mailer/popsmtp for details. ...

Назар Токарь

@Антон, ну я могу еще раз вам перевести, что отправитель должен СОВПАДАТЬ с реальной почтой.

Антон

@Назар Токарь, спасибо

Rinaz

Здравствуйте, а как привязать этот скрипт к другой кнопке?

Назар Токарь

@Rinaz, добавьте ей класс
class="callme_viewform"

Rinaz

@Назар Токарь, Спасибо

Аноним

Большая просьба – удалить потом ссылку с страницы :)

стер

спасибо за отклик :)

Назар Токарь

Проблема с вашим CSS:
#main h6 { background:url(h1-about.png) no-repeat;width:405px;height:35px;}
Замените на
#main #topic h6 { background:url(h1-about.png) no-repeat;width:405px;height:35px;}

Аноним

@Назар Токарь, Спасибо! Действительно проблемы в верстке ) Добавлю ссылку в твиттер на этот замечательный скрипт.

(ps: можно ссылочку затереть на мой сайт?)

Аноним

@Аноним, (800 фолловеров)

Назар Токарь

@Аноним, спасибо, дайте ссылку почитать :)
удалил урл.

Аноним

@Назар Токарь, Держите :)

https://twitter.com/LebedevStr

Вообще аккаунт для индексации страниц использую :)
Конечно есть процент ботов, но не большой :)

Аноним

{“result”: “error”,”cls”: “c_error”,”time”: “”,”message”: “Ошибка”}

/callme/index.php

И что с этим делать? :)

Назар Токарь

@Аноним, если открывать этот файл без передачи ему данных, он выдаст ошибку. В чем вопрос собственно?

Аноним

@Назар Токарь, спасибо. разобрался :) видимо проблемы с подключением были.

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

http://s005.radikal.ru/i212/1309/8c/38ba698dcd3d.jpg

Назар Токарь

@Аноним, ну хорошо, а почему бы не дать ссылку на страницу?

Ярослав

Прикрутил на сайт, форма корректно показывается, все ок. Почта почему-то не отправляется, попробовал уже с разными почтовыми ящиками, все равно ничего не приходит. В чем проблема может быть?
Сайт http://yutka.ru

Назар Токарь

@Ярослав, да все что угодно, от запрета отправки на хосте до неправильной настройки. Попробуйте настроить smtp например.

артем

А как на сайт выложить не кнопку о вызове скрипта, а сразу форму, в которой человек вобьет свои данные и нажмет кнопку отправить.

Назар Токарь

@артем, на форуме написано

артем

@Назар Токарь, первым делом на форум полез, не могу найти хоть убей. Дай линк на тему пожалуста.

ZFjoury

@артем, Скачайте скрипт, будет файл index.html – это как раз ваша инструкция.

артем

@ZFjoury, В простите меня, явидать совсем слепой, в упор не вижу. Может вы меня не так поняли, мне нужно что-бы была форма на сайте как здесь http://alfasvet.bucl.ru/ , что-бы посетитель сразу видел поле для ввода номера

ZFjoury

@артем, тут тогда нужна небольшая допилка – удалить ненужные поля из кода, изменить немного код.
Ступайте на форум, тем более ваш вопрос качается не ошибки, а переработки скрипта под себя.

артем

@ZFjoury, спасибо

артем

@Назар Токарь, на хостинге поддержка сказала, что пхп подключен, что проблема в скрипте, что это может быть?

я не могу найти эти строки в коде jQuery.ajaxSetup({‘beforeSend’ : function(xhr) { xhr.overrideMimeType(‘text/html; charset=utf-8′); }, });

их там просто нет

Назар Токарь

@артем, хорошо, что они ответили, но плохо, что не по делу. Убедитесь сами: вместо обработки сервер выдает сам php-код, такое может быть только в том случае, если скрипт не обрабатывается. Вот вам пример.

Все вопросы к хосту, я ничем помочь не смогу, пока php не будет работать. В крайнем случае попробуйте поэкспериментировать и заменить <?php на < ? во всех php-файлах скрипта (без пробелов).

Второй вариант: у вас запрет на обработку php-файлов в .htaccess. Нужно открыть этот файл и либо стереть оттуда все (сохранив копию), либо отредактировать доступы. Погуглите, как это делается.

артем

@Назар Токарь, все работает на ура, это хостер у меня не работает на ура, а подскажи пожалуста где у вас на форуме обсуждается как на сайт прикрутить уже открытую форму ввода данных, что-бы не вызывать ее а сразу была

артем

@Назар Токарь, еще вопрос- когда нимаешь после заполнения формы “позвоните мне” внизу появляется бегунок о загрузке, почти сразу приходит смс а бегунок так и бегает пока страницу не перезагрузишь

артем

Прикрутил скрипт к сайту, но при нажатии на кропку, вылазит форма и там всякие крокозябры, тоесть кодировка не та, сделал все как у вас написаннто перекодировал из utf-8 (без БУМ) в просто utf-8, через нотпад ++, но в callme.js не могу найти следующие строки, вернее там их нет!!

jQuery.ajaxSetup({‘beforeSend’ : function(xhr) {
xhr.overrideMimeType(‘text/html; charset=utf-8’);
},
});

и после того как я прикрутил новые библиотеки jquery у меня слайдер перестал работать, как быть?:)

Назар Токарь

@артем, попросить на хостинге разрешить выполнение php, у вас оно отключено

Rinaz

Добрый день. Спасибо за хороший скрипт. Сallme успешно работает на одном сайте но вот на втором появились проблемы. При нажатии на кнопку всплывает окошко но сразу же закрывается. в чем может быть причина?

Назар Токарь

@Rinaz, понятия не имею, надо видеть сайт

Назар Токарь

@Rinaz, у вас не подключена jquery. Данная версия скрипта требует ее для работы

Влад

Сначала поставил 1.7 на shop-script5. Все работало, но в некоторых браузерах значительно увеличилось время полной загрузки страницы. Потом поставил 1.9. Скачал файлы, и после подключения сначала все работает, потом начинает зацикливать на 404 страницу, причем похоже не на всех браузерах кроме оперы.
Подскажите, что не так?

Дедушка

@Влад, нет кода скрипта

Влад

@Дедушка, будь добр посмотри еще. После замены jquery на 1.9.1 перестал в IE выкидывать на 404 страницу, но теперь в IE и опере все в порядке, а в хроме форма вылезает, а кнопка отправки не активна. Нужна помощь? Спасибо!

Назар Токарь

@Влад, в хроме работает, кэш не забывайте чистить

Виталий

Добрый день. Не нашел ответ на свой вопрос, хотя вроде бы все комментарии перечитал. Ситуация вот какая: версия callme 1.9 не работает – некорректно отображается дизайн. Версия 1.3 вроде бы нормально стала, но при нажатии на кнопку “Перезвоните мне” ничего не происходит. Увы. В чем может быть дело? http://puzyri.com.ua/

Дедушка

@Виталий, копирайт куда пропал?

Виталий

@Дедушка, не удалял. Скачал с Вашего сайта версию 1.9, не подошла, потом поставил версию 1.3. Честно, не трогал.

Дедушка

@Виталий, у вас смешаны файлы трёх версий. Удалите их все и поставьте версию 1.9.

Роман

Я бы ещё добавил “Обратите внимание, что папка callme должна находиться именно в КОРНЕ сайта на хостинге. А не (допустим если вы используете CMS) в папке с вашим шаблоном.=)

Дедушка

Я об этом каждый раз в инструкции пишу :).
Думал, этого достаточно.