Wedos

sobota 19. listopadu 2011

PHP a sezení (Session)

Nedávno jsem zahlédl článek kde nějaký dobrodruh radil jak použít $_COOKIE pro udržování sezení. Tedy například sledování přihlášení uživatele.
Trošku jsem nad tím žasl protože podle PHP manuálu je tahle proměnná už dávno v propadlišti dějin.

Dnes je samozřejmě k dispozici mnohem lepší a modernější způsob. A tím je proměnná $_SESSION.
Pokud jí použijeme musíme také použít funkci Session_Start(). Tato funkce inicializuje proměnou $_SESSION podle toho jaké ID toho sezení je nastavené v Cookie na straně prohlížeče.
Cookie pak neobsahuje žádná data jen ID tohoto sezení.
Díky tomu je toto řešení i mnohem bezpečnější. Samotný kód pro ověření uživatele může vypadat například takhle:

Session_Start(); // musí se spustit před jakýmkoliv výstupem na obrazovku
IF ($_SESSION['uroven'] == "admin"): //kontrola úrovně a zároveň ověření jestli je uživatel přihlášen
{
//administrace
}
else:

{
//neadministrace
}
endif;

Jak vidno je to elegantní a prosté řešení. Samozřejmě takovéhle věci často řeší samotné frameworky. Samozřejmě jde použít i na další věci, které je potřeba pro udržení informací o uživateli (například průběh jeho akcí atd.)