Problém expirace proměnné po zavření prohlížeče
- Kysela_Petr
- Člen | 7
Ahoj,
nějak se mi nedaří odstranit proměnnou z prostoru session, při uzavření prohlížeče.
config:
nette:
session:
autoStart: smart
expiration: '+ 14 days'
vytvoření prostoru v presenteru A
public function handleValidation()
{
$section = $this->session->getSection('isValid');
$section->valid = TRUE;
$section->setExpiration(0, 'valid');
$this->redirect('B');
}
kontrola v presenteru B
public function startup()
{
parent::startup();
$section = $this->session->getSection('isValid');
if ( $section->valid !== TRUE )
{
$this->redirect('A:');
}
}
Pokud navštívím stránku B poprvé, dostanu se na presenter A, kliknu na tlačítko, handleValidation kliknutí obslouží, a pošle mě na presenter B. To je super a funguje, ale pokud zavřu prohlížeč, znovu ho otevřu a jdu na stránku kterou obsluhuje presenter B, tak mě to již nikam nepřesměruje.
V session potřebuji držet informace o prohlížení a nechci je mazat, a pouze validaci chci kontrolovat při každém novém otevření prohlížeče.
Nějaká rada, prosím?
- Kyslik
- Člen | 15
Aktualizace:
$section = $this->session->getSection('isValid');
$section->valid = TRUE;
$section->setExpiration(0, 'valid');
Nefunguje ve Firefoxu na Ubuntu a odnožích, testoval jsem na win7, chrome, opera, ie, safari, firefox a expirace proměnné „valid“ po zavření prohlížeče funguje.
Ač nevidím v linuxu žádné spuštěné vlákno, které by patřilo firefoxu a to i po jeho zavření, které by mohlo instanci prohlížeče držet v paměti a tím držet session, stejně po jeho opětovném spuštění proměnná stále existuje.
Teď nevím, jestli je to chyba v OS (Linux), Firefoxu nebo Nette…