Перейти к содержанию

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

Хочу посоветоваться со спецами)

Купила на opencart.com  один модуль я, для доставки.

И он конфликтует с симплой, при перезагрузке полей сбрасывается сессия на сайте и в админке.

Разработчик того модуля предложил мне решение прописать в

в файлах system/config/catalog.php и system/config/admin.php  в конце следующую строчку:
$_['session_engine'] = 'file'; 

 

Вроде теперь не сбрасывает сессии, все работает.

Но есть сомнения насчет того, не повлияет ли это на что-либо ещё.

Насколько корректно такое решение вопроса?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 минут назад, Xelen сказал:

Купила на opencart.com  один модуль

В мусорку такие модули с граблями
Не понятно что он там с сессией делает, а на "обработке" сессий построена работа всех кешировщиков  и других модулей тоже
Это значит модуль своими ошибками мешает работе

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, markimax сказал:

В мусорку такие модули с граблями
Не понятно что он там с сессией делает, а на "обработке" сессий построена работа всех кешировщиков  и других модулей тоже
Это значит модуль своими ошибками мешает работе

 

да мне самой все это не нравится. Но вариантов нет особо по этому вопросу.

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

так понимаю, конфликт скриптов. может есть какой-то вариант заставить скрипты не конфликтовать?

не возвращаться же мне к станадартному чекауту)

Поделиться сообщением


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

дело оказалось не в конфликте скриптов.

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

а скрипт перезагрузки просто показывает то, что уже произошло.

Поделиться сообщением


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

может кто подскажет, в файле или таблице сессий вообще должен храниться скрипт из модели, помимо самой информации из селекта адресов доставки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 минут назад, Xelen сказал:

может кто подскажет, в файле или таблице сессий вообще должен храниться скрипт из модели, помимо самой информации из селекта адресов доставки?

Повторите вопрос
в сессии может храниться информация о shipping_method
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
18 минут назад, chukcha сказал:

Повторите вопрос
в сессии может храниться информация о shipping_method
 

 

у меня модуль доставки обнулял сессию из-за слишком большого объема данных.

В этом модуле передается список адресов поставщика услуги доставки.

сначала перевели сессии на файл, но потом я решила увеличить размер поля в БД

Размер поля в БД я увеличила, все работает.

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

<option value="omniva.omniva_9946">адрес</option>
<option value="omniva.omniva_9902">адрес1</option>
<option value="omniva.omniva_9884">адрес2</option>

 

там в конце в поле сессии , где эти адреса, ещё и передается целый скрипт, который прописан в файле модели каталога. этот скрипт отвечает за работу селекта.

Я без понятия, должен ли передаваться в сессию Js  код? Это корректно?

Поделиться сообщением


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

Да, есть такое, к сожалению, причина - в идеологии оформления заказа опенкарта

По сути нужен аякс скрипт для таких селектов

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, chukcha сказал:

Да, есть такое, к сожалению, причина - в идеологии оформления заказа опенкарта

По сути нужен аякс скрипт для таких селектов

 

А как очищать сессии из БД?

Там месяцами накапливаются мегабайты истекших сессий

Это как-то удаляется через Опенкарт?

Я вижу в файле system/library/session/db.php код

public function destroy($session_id) {
		$this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "'");
		
		return true;
	}

только не могу понять, что его запускает? Есть какая-то кнопка?

настройка session.gc_maxlifetime = 3600;

 

И то же самое, если сессии переключить на файл

public function destroy($session_id) {
		$file = DIR_SESSION . '/sess_' . basename($session_id);

		if (is_file($file)) {
			unset($file);
		}
	}

 

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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