Samizdatová skripta

Session management


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.

Některé funkce pro práci se Session

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á existuje
$_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.

Registrace proměnné

  <?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");
?>

Proměnná je přístupné v jiném skriptu

  <?php
session_start();

echo $_SESSION["prihlaseny"]; //vypis proměnné

Příklad:

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"];

Užití Session Management

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; ?>




upravit odstranit css

NAVRCHOLU.cz