Перейти к содержимому


Выкидывает из личного кабинета

Личный кабинет

  • Вы не можете ответить в тему
Сообщений в теме: 8

#1 Cruelten

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 48 сообщений
Репутация: 1
Начинающий

Отправлено 10 December 2015 - 12:51 PM

Всем привет. Заметил интересную особенность у ShopCMS, может кто сталкивался и решил это проблему. Итак.

На некоторых устройствах, на мобильных особенно. Когда мы зашли в личный кабинет, то если мы начинаем проводить какие-то действия на сайте, то мы почему-то автоматически выходим из личного кабинета покупателя. От этого и корзина ясен перец опустошается сразу и пользователи уходят с сайта.

Подскажите, кто-нить сталкивался и если да, то как решили проблему. Спасибо.
  • 0

#2 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 10 December 2015 - 01:47 PM

Имею непроверенное подозрение, что потеря логина происходит в результате потери сессии, а потеря сессии в результате заметного несовпадения времени клиентского компа и сервера.
Подозреваю это потому, что сталкивался с аналогичным на Magento.
Там различие времени на час (общемирового, т.е. с учетом UTC) вызывает слет регистрации при каждой перезагрузке страницы.
Когда президент Медведев отменил перевод часов, то все необновленные винды их все равно перевели.
Ну а подавляющее большинство пользователей не временную зону переставили на Абу-Даби (вместо Москвы), чтобы UTC было правильным, а просто перевели время на час, получив по UTC несовпадение с сервером на час.
И логин начал отваливаться :).

На ShopCMS этот момент не проверял, не было надобности.
Возможно, дело вовсе и не в этом.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#3 Cruelten

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 48 сообщений
Репутация: 1
Начинающий

Отправлено 10 December 2015 - 02:11 PM

Интересно получается, возможно причина как раз в этом. Так как на подавляющем количестве устройств, все ок работает. А тут такое дело. Получается, это никак не исправить. Никак не отследить этот момент. Как на Majento была решена эта проблема?
  • 0

#4 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 10 December 2015 - 03:08 PM

Как на Majento была решена эта проблема?

Установкой правильной временной зоны на компе клиента :).

Получается, это никак не исправить. Никак не отследить этот момент

Почему? Если сервер мог отлогинивать клиента, значит какм-то образом получал время от браузера клиента.
Ну а раз сервер получал, то и из PHP это время наверняка можно как-то получить.
У меня такой надобности не вставало, но врядли это какой-то хитрый финт.
Скорее всего, какая-то штатная функция.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#5 Cruelten

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 48 сообщений
Репутация: 1
Начинающий

Отправлено 10 December 2015 - 03:13 PM

Хм... интересно, хочу проверить эту теорию. Сейчас у себя поменяю время - посмотрю.

Поменял разные, все ок работает. Я все-таки склоняюсь к тому, что на каких-то устройствах происходит удаление как раз этой сессии. Но не могу понять, почему это происходит. Особенно, на андроид, все окейно работает на iOS. А на андроидах проблемы.
  • 0

#6 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 10 December 2015 - 03:16 PM

PS. С ходу в голову пришло записать в head.tpl.html или index.tpl.html маленький яваскрипт, который через аякс будет засылать на сервер таймзону и время клиента. Но это, думаю, как-то слишком уж хитро.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#7 Cruelten

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 48 сообщений
Репутация: 1
Начинающий

Отправлено 28 December 2015 - 10:55 AM

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

Если мы будем использовать другие браузеры ошибок нет. Спрашивается сразу вопрос. Что такого в гугл хром, что ему мешает нормально работать с сайтом?

P.S. Да, и еще важный момент, это так работает со всеми магазинами с Default шаблоном. Я специально проверил. То есть. Никаких изменений в код не делается вообще.
  • 0

#8 Cruelten

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 48 сообщений
Репутация: 1
Начинающий

Отправлено 01 January 2016 - 04:54 PM

Уважаемые, с Новым Годом Вас всех поздравляю. Мне помогли решить эту проблему, и я спешу поделиться с ней в этой теме. Итак, от чего возникает эта ошибка я в непонятках. Но! Чтобы ее исправить находим 61-62 строчки в коде index.php - в корневом каталоге. Комментим эти строчки и прописываем вместо них вот эту.
define("SECURITY_EXPIRE", 86400);
Собственно и все. Будет отлично работать все с гугл хром с планшета.
  • 0

#9 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 02 January 2016 - 01:31 AM

Собственно и все. Будет отлично работать все с гугл хром с планшета.

То, что Вы описали - это замена штатного

define("SECURITY_EXPIRE", 60 * 60 * CONF_SECURITY_EXPIRE);

при штатной установке этого параметра в общих настройках "хранить сессию два часа" на "хранить сессию сутки". С тем же успехом можно было заменить 2 на 24 в общих настройках без правки кода.

Скорее всего, корень проблемы находится в не установленном часовом поясе на планшете. Каждый раз при перезагрузке страницы сессия является уже устаревшей более, чем на разницу GMT и реального часового пояса. А изменив срок хранения сессии на бОльший срок (более, чем разница между GMT и временем планшета) вы устранили СЛЕДСТВИЕ некорректной установки часового пояса на планшете. На обычном компе при установке винды/линукса часовой пояс более-менее правильно (плюс-минус час, т.е. меньше дефолтовых двух часов) устанавливается при инсталляции, т.к. надо обязательно (или почти обязательно) выбирать страну и город. На планшетах и смартфонах обязательности этой настройки нет. Операционная система уже предустановлена и не все правильно потом выставляют настройки "время+смещение-от-GMT".
Мне думается, что причина в этом.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)