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 | 504
<?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?
?>
- David Grudl
- Nette Core | 8249
Nemělo by tam být?
$container->session->setExpiration('+ 2 days', false);
if ($container->session->exists()) {
$container->session->start();
}
- David Grudl
- Nette Core | 8249
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.