Pokud potřebujeme monitorovat chování návštěvníka na stránce, aniž by tyto informace opustily server, tedy aby je návštěvník nemohl změnit, použijeme k tomu Session proměnou.
Proměnou na serveru zaregistruje. Pro každého návštěvníka je registrována jedinečná proměnná (nebo více), ale pro skript mají shodný název. Proměnná zanikne po určitém časovém intervalu, když uživatel zavře internetový prohlížeč, nebo ji můžeme zrušit.
Session_start() | start služby |
Session_register(“ | registrace proměnné |
Session_unregister(“ | „odregistrace“ (zrušení registrace) proměnné |
Session_destroy() | zničení všech proměnných přiřazením doménám |
Session_is_registered(“ | ověří, zda tato proměnná |
$_SESSION[“ | asociativní pole obsahující všechny session proměnné. Používá se pro výpis proměnných, pokud nelze adresovat na proměnné přímo. |
<?php session_start();//Tato funkce musí být umístěna tak, aby se před ní neodesílaly HTTP hlavičky. session_register("prihlaseny"); ?>
<?php session_start(); echo $_SESSION["prihlaseny"]; //vypis proměnné
soubor session.php:
session_start();//musí být vždy nahoře - před posláním dalších HTTP hlaviček $_SESSION["uzjm"]="Pekáč";
soubor session2.php:
session_start();//musí být vždy nahoře - před posláním dalších HTTP hlaviček echo $_SESSION["uzjm"];
Vzhledem k tomu, že SESSION_ID se předává v rámci cookies jsme schopni rozlišit uživatele přistupující k našemu skriptu. Obvyklá aplikace spočívá v tom, že po autentifikace uživatele (přihlášení se do systému) se vytvoří session proměnná, která ani nemusí nést v sobě nějakou informaci, ale má nějakou časovou platnost, která se dá i nastavit, ale důležité je, že vyprší pokud nevyvíjí nějakou aktivitu (odesílá požadavky na server). My pak jen kontrolujeme, zda proměnná existuje či ne. Pokud ne, tak uživatele odhlásíme. Většinou to uživatel pozná až když po nějaké době klikne na odkaz.
session_start(); $vzhled=$_SESSION["vzhled"];//pokud již zaregistrováno, můžeme pracovat se skriptem $akce=$_GET["akce"];//Kliknul jsem na odhlašovací odkaz if ($akce=="odhlasit") unset($_SESSION["vzhled"]);//ohlásím - unset - ruší proměnnou //odhlašovací odkaz - ověřím, zda jsem přohlášen if ($_SESSION["heslo"]):?> <p> <a href="index.php?id= <?=$id;?>&akce=odhlasit">ODHLÁSIT </a> </p> <? endif; ?>