setExpiration musím nastavovat pro každou sekci?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
mcmatak
Člen | 490
+
0
-
<?php

[2012-01-30 18-39-53] PHP Notice: The expiration time is greater than the session expiration 10800 seconds in /srv/pinguin-shop.cz/www/libs/Nette/Http/SessionSection.php:214  @  http://www.pinguin-shop.cz/damske-fleecove-kalhoty/c-513

?>

jako prostě nevím, prohledal jsem projekt na setExpiration

<?php
1. bootstrap

if ($container->session->exists()) {
	$container->session->setExpiration('+ 2 days', false);
	$container->session->start();

}



2. v service modelu

	public function createServiceUser()
	{
		$storage = new Nette\Http\UserStorage($this->context->session);
		$user = new System\Security\User($storage, $this->context);
		$user->setExpiration('+ 1 days', false);
		return $user;
	}

3. pak už jedině jednotlivý useři v basepresenteru

	public function getUserAdmin()
	{
		if (!$this->userAdmin) {
			$user = $this->getUser();
			$s = $user->getStorage();
			$s->setNamespace('admin');
			$user->setExpiration('+ 1 days', false);

			$this->userAdmin = $user;
		}

		return $this->userAdmin;

	}


co mu teda pořád vadí? to musím nastavovat každou sessionsection? copak když to nezadám tak si to nebere od rodiče?
?>
Ani
Člen | 226
+
0
-

Jo tenhle problém jsem měl taky. Když se to nastaví už v configu tak to notice nedělá. Celkově mi to přišlo moc magické, tak sem to nezkoumal.

	services:
		session:
			setup:
				- setExpiration(1111111)
mcmatak
Člen | 490
+
0
-

hm a misto tech jednicek das teda + 2 days? mi tohle tak jasne neni, nebo si to vyřešil tim, že si dal neuměrně velké číslo? nebo co jsou ty jedničky, třeba je problém v překladu 2 days? i když to ne, to sem kontroloval

Ani
Člen | 226
+
0
-

Ta muze byt treba ‚+ 2 days‘.

Problém byl že to ten bootstrap nějak nebralo v potaz, respektive ono to tu expiraci nastavilo, ale s touhle notice, kdy se tam stejně požívala DEFAULT_FILE_LIFETIME z nette.

Editoval Ani (30. 1. 2012 19:26)

mcmatak
Člen | 490
+
0
-

tak to nepomohlo

David Grudl
Nette Core | 8082
+
0
-

Nemělo by tam být?

$container->session->setExpiration('+ 2 days', false);
if ($container->session->exists()) {
        $container->session->start();

}
jetpack
Člen | 71
+
0
-

No Davide to vyhodí následující chybu:

Unable to set ‚session.gc_maxlifetime‘ to value ‚172800‘ when session has been started by session.auto_start or session_start()

David Grudl
Nette Core | 8082
+
0
-

To znamená, že session už byla nastartována. Ale kde?

matoni555
Člen | 40
+
0
-

Také mi to hází tu stejnou chybu. Session už byla někde nastartována, ale netuším, kde by to mohlo být.

Aearsis
Člen | 57
+
0
-

session.auto_start v php.ini?

matoni555
Člen | 40
+
0
-

V php.ini je to vypnuté: session.auto_start = 0

Felix
Nette Core | 1183
+
0
-

Taky mi to tedka dela. Neni to nejakej bug?

David Grudl
Nette Core | 8082
+
0
-

Možná je to defaultním startováním session od verze 2.0.2. Tudíž pokud máte v kódu bootstrapu něco, co session startuje, tak to smažte.