Předčasná session expirace

- Keksa
 - Člen | 23
 
Mám takový problém, v bootstrapu je normálně nastavené:
$configurator->addConfig(__DIR__ . '/config/config.neon');
$container = $configurator->createContainer();
$container->session->setExpiration('+ 14 days');
$container->session->setSavePath(SESSIONS_DIR);
if ($container->session->exists()) {
	$container->session->start();
}
A handler submitted přihlašovacího formuláře vypadá takto:
public function signInFormSubmitted($form)
	{
		try {
			$values = $form->getValues();
			if ($values->remember) {
				$this->getUser()->setExpiration('+ 14 days', FALSE);
			} else {
				$this->getUser()->setExpiration('+ 12 hours', TRUE);
			}
			$this->getUser()->login($values->username, $values->password);
			$this->redirect('Chat:');
		} catch (NS\AuthenticationException $e) {
			$form->addError($e->getMessage());
		}
	}
Jenže se mi stává, že se mi i přesto uživatel po cca půl hodině
odhlásí. Když se podívám ve firefoxu do cookies tak má expiraci nastavenou
normálně do + 14 dní.
Takže se ptám, nevíte někdo čím to?

- Keksa
 - Člen | 23
 
Hmm, tak i přesto, že jsem na serveru nastavil session.gc_maxlifetime na 1209600 sekund (14 dní) tak se to odhlásí. Nastavuju to sice přes ini_set, ale to by snad nemělo vadit, když ini_get pak v pořádku tu hodnotu zobrazí. Na wedos hostingu to ani jinak nezměnim.
Nastavení sessions v bootstrapu:
ini_set('session.gc_maxlifetime',1209600);
$container->session->setExpiration('+ 14 days');
$container->session->setSavePath(SESSIONS_DIR);
// Opens already started session
if ($container->session->exists()) {
	$container->session->start();
}
				
- Keksa
 - Člen | 23
 
22 napsal(a):
@Keksa: trošku mě překvapilo, že wedos takové nastavení neumožňuje. Jinak ukládat citlivé informace o přihlášení do cookie není určitě dobrej nápad.
Jo, tak to mě taky. Souhlasím, že to není dobrej nápad, ale jediné řešení jaké mě napadá, je tahat všechno z databáze při každém reloadu stránky, což je naprosto nepoužitelné, protože by to imho neúměrně zatěžovalo server.
Editoval Keksa (29. 2. 2012 14:12)

- David Grudl
 - Nette Core | 8285
 
Třeba by stačilo si pohrát s session.gc_divisor a session.gc_probability

- Keksa
 - Člen | 23
 
David Grudl napsal(a):
Třeba by stačilo si pohrát s session.gc_divisor a session.gc_probability
To je právě to, nemůžu. Hosting Wedos to neumožňuje. Viz http://kb.wedos.com/…ace-php.html – jiné parametry měnit nelze a to ani pomocí funkce ini_set přímo v php. Psal sem na podporu, jestli by to nezvedli lokálně, tak uvidím.
EDIT: Tak mě odbyli, že to není možné a že pokud si to chci nastavit ať si objednám VPS.
Editoval Keksa (29. 2. 2012 19:38)