Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Как сохранять сессию для админа бесконечно?


Recommended Posts

В opencart 3 сессия хранится недолго, зашел под админом, прошло субъективно полчаса, он разлогинился.

В ocstore 2.3 - то же.

А в ocstore 3 например она длится вечно, пока не разлогинишься сам.

 

Можно ли как-то сгделать, чтобы в Opencart 3 и Ocstore 2.3 тоже она длилась непрерывно?

Если кто гделал ик и знает, то напишите плз.

Link to comment
Share on other sites


13 минут назад, stanr сказал:

В opencart 3 сессия хранится недолго, зашел под админом, прошло субъективно полчаса, он разлогинился.

В ocstore 2.3 - то же.

А в ocstore 3 например она длится вечно, пока не разлогинишься сам.

 

Можно ли как-то сгделать, чтобы в Opencart 3 и Ocstore 2.3 тоже она длилась непрерывно?

Если кто гделал ик и знает, то напишите плз.

 

движок дает возможность хранить сессии или в БД или в временных файлах.

за время жизни сессии отвечает session.gc_maxlifetime и по умолчанию время жизни сессии равно 1440 секунд (т/е 24 минуты). 

в зависимости от того в чем у вас сохраняются сессии то вам нужно редактировать:

system/library/session/db.php или system/library/session/file.php

 

гделать бесконечным время жизни сессии я бы не советовал. 

Link to comment
Share on other sites

2 часа назад, OCdevWizard сказал:

 

движок дает возможность хранить сессии или в БД или в временных файлах.

за время жизни сессии отвечает session.gc_maxlifetime и по умолчанию время жизни сессии равно 1440 секунд (т/е 24 минуты). 

в зависимости от того в чем у вас сохраняются сессии то вам нужно редактировать:

system/library/session/db.php или system/library/session/file.php

 

в file.php нет session.gc_maxlifetime, а в db.php есть в вигде:

 

/*
CREATE TABLE IF NOT EXISTS `session` (
  `session_id` varchar(32) NOT NULL,
  `data` text NOT NULL,
  `expire` datetime NOT NULL,
  PRIMARY KEY (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
*/
namespace Session;
final class DB {
	public $data = array();
	public $expire = array();
	
	public function __construct($registry) {
		$this->db = $registry->get('db');
		
		register_shutdown_function('session_write_close');
		
		$this->expire = ini_get('session.gc_maxlifetime');
	}

 

и вот что тут поменять надо чтобы срилиило?

Link to comment
Share on other sites


12 минут назад, stanr сказал:

в file.php нет session.gc_maxlifetime, а в db.php есть в вигде:

выше написаное было на примере opencart 3.x

Link to comment
Share on other sites

5 часов назад, OCdevWizard сказал:

выше написаное было на примере opencart 3.x

добавил в opencart 3 произвольное значение https://disk.yandex.com/i/Jc4ZcIKnWX_CLQ

но не помогло, всё равно сессия не сохраняется.

может не ик надо было?

 

в file.php иких значений нет https://disk.yandex.com/i/6PRoODwFBRsGFg

 

Link to comment
Share on other sites


 

$this->maxlifetime = ini_get('session.gc_maxlifetime') !== null ? (int)ini_get('session.gc_maxlifetime') : 359001440;

твое значение бугдет рилиить только в том случае если ini_get('session.gc_maxlifetime') бугдет NULL а оно не NULL, имхо ваше гдействие бесполезное, поэтому это не рилииет, для верности можно 

 

$this->maxlifetime = 359001440;

 

  • +1 1
Link to comment
Share on other sites


А на хостинге поменять эту настройку не судьба? 

Link to comment
Share on other sites


13 часов назад, niger сказал:

А на хостинге поменять эту настройку не судьба? 

знал бы прикуп жил бы в соли )

а ггде именно на шарегде это меняется?

Link to comment
Share on other sites


Только что, stanr сказал:

знал бы прикуп жил бы в соли )

а ггде именно на шарегде это меняется?

У каждого хостинга свои настройки. 

У моего вот прям ик и называется

Link to comment
Share on other sites


В 13.02.2022 в 23:16, lmz сказал:

 

$this->maxlifetime = ini_get('session.gc_maxlifetime') !== null ? (int)ini_get('session.gc_maxlifetime') : 359001440;

твое значение бугдет рилиить только в том случае если ini_get('session.gc_maxlifetime') бугдет NULL а оно не NULL, имхо ваше гдействие бесполезное, поэтому это не рилииет, для верности можно 

 

$this->maxlifetime = 359001440;

 

эи штука срилиила.

может знаете как сгделать то же самое в 2.3 ?

им вот икая штука https://disk.yandex.com/i/HnlkzyZdXeM42g

но сессии не сохраняются

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.