Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

nogocuHoBuk

Пользователи
  • Публикаций

    333
  • Зарегистрирован

  • Посещение

6 подписчиков

О nogocuHoBuk

  • День рождения 07.09.1978

Техническая поддержка

  • Рабочие дни
    Пн
    Вт
    Ср
    Чт
    Пт
    Сб
  • Выходные дни
    Вс
  • Рабочее время
    с 10:00 - 19:00
  • Текущий статус
    Работаю
  • Другое
    Сделать можно практически всё. Главное - финансирование! :)

Информация

  • Пол
    Мужчина
  • Город:
    Киев
  • Интересы
    Opencart

Посетители профиля

3 719 просмотров профиля

Достижения nogocuHoBuk

Rising Star

Rising Star (9/14)

  • Dedicated Редкая
  • First Post
  • Collaborator
  • Conversation Starter
  • Reacting Well Редкая

Последние медали

136

Репутация

  1. Вы всё время копаете не в ту сторону. Опенкарт, как и ocStore ВООБЩЕ не определяет устройство, с которого Вы заходите на сайт. Эта часть заголовков ему не интересна, разве что Вы собственноручно установили како-то модуль/дополнение/скрипт, который может это делать. Но с вероятностью 99.99% подобные "определения" служат для других целей (адаптация, разные шапки, меню и прочее), но точно не для "убийства" сессии... Как вариант - где-то в настройках Андроида включена опция - очищать историю браузера при закрытии. Т.е. при закрытии браузера очищается кеш. Логично, что в таком случае авторизация будет слетать. ЗЫ. Начал писать это сообщение в 2:02 - в это время авторизовался с мобильного на Вашем сайте. Свернул браузер на 28 минут. И вот сейчас в 22:30 открыл браузер - я всё ещё авторизваон. Дополнительно отпишусь утром (если не забуду) ЗЗЫ. Отправил вам в личку видео из которого видно, что проблема не в ocstore.
  2. Да. кавычки не те. либо $this->db->query("DELETE `p1` FROM " . DB_PREFIX . "product_image p1, " . DB_PREFIX . "product_image p2 WHERE (p1.product_image_id < p2.product_image_id) AND (p1.image = p2.image)"); либо $this->db->query("DELETE p1 FROM " . DB_PREFIX . "product_image p1, " . DB_PREFIX . "product_image p2 WHERE (p1.product_image_id < p2.product_image_id) AND (p1.image = p2.image)");
  3. Проще все подобные запросы (тяжелые) повесить на крон (например раз в час, в зависимости от продаж. ВОзможно Вам и раз в сутки хватит) и писать результаты в отдельную таблицу, например oc_product_rating Ну и модулем уже дёргать не из всей базы, нагружая её перебирая все товары и заказы, а брать рассчитанные значения непосредственно из таблицы.
  4. Как я писал выше - я так и не понял что этот запрос делает. Но согласно синтаксису - всё правильно )
  5. Ну так в editProduct добавляйте. Причем учитывая сам запрос можно перед этим вставить: $this->db->query("DELETE FROM " . DB_PREFIX . "product_to_download WHERE product_id = '" . (int)$product_id . "'"); Я всё ещё не понимаю зачем, но всё в Ваших руках И да. Не забудьте обновить модификаторы после изменения модели. Это обязательно.
  6. А кто Вам запрос составлял? Бо DELETE table FROM table не укладывается в моей голове. Не могу понять логику запроса Возможно, конечно, жара и я торможу, но интуиция подсказывает что "что-то тут не так".
  7. Кстати. МОжет Вас просто ДДосят? Отсюда и нагрузка. В момент падения сайта добавьте в htaccess Order Allow,Deny Deny from all Allow from ВАШ_IP_АДРЕС И если сайт в течение минуты оживёт (естественно только для Вас) - настраивайте cloudflare.
  8. У Вас эти запросы в хедере чтоли? Просто непонятно как запрос продаваемых товаров может "уложить", например, страницу контактов. Или под "лежит" Вы понимаете определенные страницы?
  9. В oc_order_product добавьте индексы для product_id и quantity ну и можно создать общий индекс, как написал @buslikdrev для product_id order_id
  10. Первый запрос: Дай восемь id товаров, и количество продаж для самых продаваемых товаров для всех активных, включенных товаров из категории 196 главного магазина со store_id=0 и отсортируй список по количеству продаж. В общем выборка 8-ми самых продаваемых товаров из определенной категории. Во втором запросе какая-то тарабарщина для товара с ID 598 (похоже что считает количество продаж). Не уверен. Не стал вникать Вы б лучше сказали что Вам нужно, и тогда можно подсказать как это сделать ) Ну и для оптимизации запросов с джоинами желательно индексировать группы полей. Да, размер БД слегка (иногда и не слегка) увеличится, но даст прирост в производительности.
  11. Не должно біть никакх ограничений на время хранения сессии. Вполне возможно на телефоне Ві авторизовались "по старым" параметрам. Попробуйте снова авторизоваться. ЗЫ. Скорее всего предварительно нужно сбросить кеш на телефоне. Не уверен, что это обязательно, но на всякий случай.
  12. До смены оператора 90% сайтов определяли моё местоположение как Харьков. Хотя я нахожусь в Киеве. Проблема оператора - пул IP адресов Триолана привязан к Харькову. И подобная ситуация у Воли. Про мобильных операторов вообще молчу - там дичь дикая. Для точного определения местоположения нужны скрипты гугла, с всплывающим уведомлением, типа "разрешить сайту отслеживать Ваше местоположение" и прочими радостями. По IP - задача практически невіполнимая. Ну или как сделано в OLX - определять по IP (с большой вероятностью погрешности) но тут же спрашивать у пользователя: "Ваш город Городище?" - с последующим выбором города и области.
  13. Не php.ini, а phpinfo() Имелось ввиду: 1. В корне сайта создать файл, например info.php 2. В содержимое файла добавить: <?php phpinfo(); ?> 3. Перейти по ссылке https://ваш_сайт/info.php Скинуть сюда информацию о параметре session.gc_maxlifetime или ссылку на этот файл. Дело в том, что изменения в php.ini не всегда отрабатываются, так же как и у хостера в панели управления может стоять разрещенный максимум (например 144000, а при установке большего значения устанавливается дефолт - 1440.
  14. Я Вам больше скажу. Страницу можно не закрывать. Достаточно бездействия 1440 секунд (22 минуты). Копать в сторону session.gc_maxlifetime и session.cookie_lifetime.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.