Перейти к содержанию
Форум поддержки пользователей VamShop

Не выбирает регионы при регистрации клиента - зависает


Рекомендуемые сообщения

Регистрируется клиент из США, выбирает США, => идет загрузка регионов. На этом виснет. Причем, иногда пробивает и выдает регионы. Когда виснет, браузер показывает ошибку на странице:

Сообщение: JsHttpRequest: JavaScript code generated by backend is invalid!

Строка: 384

Символ: 1

Код: 0

URI-код: http://xxx.kiev.ua/jscript/jscript_JsHttpRequest.js

Как с этим бороться? Вопрос серьезный, т.к. могут теряться клиенты!

Ссылка на сообщение
Поделиться на другие сайты

Vitsb

Почему-то не на всех хостинга работает.

Пока не разобрался, в чём проблема.

В текущей версии по умолчанию уже выбрана страна и регион, которые указаны в Админке - Настройки - Мой магазин, т.е. можно выбрать страну, из которой большинство клиентов.

Либо тогда выключать страну, регион в Админке - Настройки - Основные - Данные клиента.

Других вариантов на данный момент пока что нет.

Ссылка на сообщение
Поделиться на другие сайты

Спасибо, отключил регионы - они мне пока не важны. Теперь нечему виснуть. Но что же это было? Может есть модуль js поновее?

Ссылка на сообщение
Поделиться на другие сайты

Пока не могу сказать.

Зарегистрируйте на vamshop.ru/bugs , попробую разобраться, но обещать ничего не могу.

Ссылка на сообщение
Поделиться на другие сайты
  • 7 months later...

http://flavourartexpress.ru/

виснет на загрузке регионов после выбора страны.

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

Поставьте FireBug и посмотрие что происходит.

Ответ post-запроса http://flavourartexpress.ru/index_ajax.php?ajax_page=loadStateXML&JsHttpRequest=0-xml:'>http://flavourartexpress.ru/index_ajax.php?ajax_page=loadStateXML&JsHttpRequest=0-xml:

Невозможно загрузить исходный код для: http://flavourartexpress.ru/index_ajax.php?ajax_page=loadStateXML&JsHttpRequest=0-xml

Если явно посмотреть что возвращает по этому адресу, то увидим:

Deprecated: Assigning the return value of new by reference is deprecated in /home/icigarette/wwwroot/index_ajax.php on line 24

{"id":"0","js":"","text":"

\nFatal error<\/b>: HTTP headers are already sent in \/home\/icigarette\/wwwroot\/index_ajax.php on line 24. Possibly you have an extra space (or a newline) before the first line of the script or any library. Please note that JsHttpRequest uses its own Content-Type header and fails if this header cannot be set. See header() function documentation for more details in \/home\/icigarette\/wwwroot\/includes\/classes\/JsHttpRequest.php<\/b> on line 98<\/b>

\n"}

Ссылка на сообщение
Поделиться на другие сайты

Вообще-то это информация для разработчиков, т.е. для Саши ;)

Это означает, что код не совместим с используемой версией пхп. Точнее он пока ещё совместим, но в последующем то, что отмечено как Deprecated работать не будет.

Что нужно делать в этом случае.

1. Отключить показ этих сообщений в продакшн магазине.

Для этого в application_top заменить

error_reporting(E_ALL & ~E_NOTICE);
на
error_reporting(version_compare(PHP_VERSION, 5.3, '>=') ? E_ALL & ~E_DEPRECATED & ~E_NOTICE : version_compare(PHP_VERSION, 6.0, '>=') ? E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_STRICT : E_ALL & ~E_NOTICE);

2. Исправлять код, пока он ещё поддерживается, хоть и Deprecated.

На самом деле уже давно пора избаляться от библиотеки JsHttpRequest в пользу jquery. Как оказалось, это не так сложно. Даже очень просто, когда проникнешься идеологией jquery и его работой с ajax. (Это опять же адресовано Саше ;) )

Ссылка на сообщение
Поделиться на другие сайты

То есть сейчас кроме отключения страны и регионов вариантов нет? Но тогда почта криво считать будет =( В общем то выбор страны/региона настолько тривиальная и необходимая вещь... И что теперь? На другой движок переползать? у меня половина клиентов в тундре живет.

Ссылка на сообщение
Поделиться на другие сайты

Блин, бред какой то! В админской правилке контактов -и страну выбирает и регионы. А в клиентской виснет.

Ссылка на сообщение
Поделиться на другие сайты

Да, не помогло. Причем в редактировании своих данных по умолчанию подгружена Россия и если не дергать выбор можно выбрать и регион. Если дернуть страну - висим. А вот в редактировании адреса доставки по умолчанию страна не выбрана, и при ее выборе -висим. При этом в админском редактировании персональных данных - все рабоатет

Ссылка на сообщение
Поделиться на другие сайты

Cptn

Пришлите в личку ссылку на магазин, доступ в админку, доступ на ftp и ещё раз описание проблемы.

Попробую глянуть.

Ссылка на сообщение
Поделиться на другие сайты

Да, не помогло.

Судя по оставшемуся сообщению

<b>Deprecated</b>:  Assigning the return value of new by reference is deprecated in <b>/home/icigarette/wwwroot/index_ajax.php</b> on line <b>24</b><br />
не был заменён
error_reporting(E_ALL & ~E_NOTICE);

Ссылка на сообщение
Поделиться на другие сайты

ужасы вы какие рассказываете мщщина (с)

заменено

// set the level of error reporting

error_reporting(version_compare(PHP_VERSION, 5.3, '>=') ? E_ALL & ~E_DEPRECATED & ~E_NOTICE : version_compare(PHP_VERSION, 6.0, '>=') ? E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_STRICT : E_ALL & ~E_NOTICE);

//  error_reporting(E_ALL);

Ссылка на сообщение
Поделиться на другие сайты

Cptn 

Проверьте, у меня работает.

Но конечно, по-хорошему, нужно всё менять на jQuery, это правильней.

Видимо, к следующей версии или через одну, весь ajax код будет заменён на более удобный, простой, а главное популярный и практически уже являющийся стандартном для клиентского JS - jQuery.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...