Session destroy
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- symmetry
- Člen | 71
Zdravím, chtěl bych se zeptat, jak docílit zrušení všech a nebo
určité session?
Pokud mám session aktivovanu a přejdu například na logout.php
kde mám uvedeno:
<?php
include './libs/nette-0.9-PHP-5.2/Nette/loader.php';
$namespace = Environment::getSession();
$namespace->destroy();
echo '<div class=\"message\">';
echo 'Odhlášní proběhlo úspěšně';
echo '</div>';
?>
Pak dostanu
Uncaught exception ‚InvalidStateException‘ with message ‚Session is not
started.‘ atd..
Ale přitom session nastartována je..
Tuší někdo, čím by to mohlo být způsobeno?
Díky za každou radu.
- lucass
- Člen | 89
Asi to má co společného s životním cyklem. Použil bych spíš signál, ve kterém tu session zrušíš.
Třeba nějak takto (mám to v BasePresenteru):
<?php
...
/**
* Obsluha signalu pro odhlaseni.
*
*/
public function handleLogout() {
$user = Environment::getUser();
if ($user->isAuthenticated()) {
$user->signOut();
$this->flashMessage(_('Byl jste úspěšně odhlášen.'), IFlash::SUCCESS);
}
$this->redirect('this');
}
...
?>
Editoval lucass (15. 11. 2009 22:34)