php - pre začiatočníkov

Vytlač príspevok
Odporuč príspevok
Bookmark and Share PRIDAŤ NA VYBRALI.SME.SK

PHP Manuál : 10. Session

po slovensky : relácie
Navigácia
  1. Session
    1.1 Vytvárame session - funkcia session_start();
    1.2 Premenné v session

  2. Session id
  3. Ničenie session - funkcia session_destroy();
  4. Funckia session_name();

SESSION

Ja sa radšej budem držať anglického názvu session. Session je prostriedok ako medzi jednotlivými prístupmi zachovávať a predávať dáta.
Typickým príkladom session je prihlasovanie užívateľov na server , kde ak prebehne prihlásenie , vytvorí sa session a uloží do nej jednoznačný identifikátor nášho užívateľa. Počas celej jeho práce má každý php skript prístup k session a preto aplikácia vie ,kto s ňou narába. Až dovtedy pokiaľ sa užívateľ neodhlási - session zničí.
Výhodou session je ,že všetky citlivé dáta sú uložené na serveri a aplikácia si prenáša len session id - automaticky generovaný jednoznačný identifikátor session.

session_start();
Táto funkcia sa používa pre vytvorenie session. Tá najprv skontroluje či neexistuje id nejakej prebiehajúcej session , ak nie tak vytvorí novú.Ak áno , tak znova spustí prebiehajúcu session.

Túto funkciu takisto ako set_cookie() ,treba použiť ešte pred akýmkoľvek výstupom skriptu. Teda ešte pred znak <HTML>.

premenné v session
V článku o superglobálnych premenných sme si povedali ,že k session pristupujeme pomocou poľa $_SESSION. Ak chceme vytvoriť novú premennú pristupujeme k nej ako k prvku poľa.
$_SESSION["premenna"] = hodnota;
Príklad 25
<?php
 session_start(); //spustenie session
$_SESSION["premenna"]="hodnota"; //nastavenie premennej
?>
<html>
<body>
<?php

// získanie hodnoty premennej
echo $_SESSION["premenna"]; //vypise hodnota

?>
</body>
</html>


Ak chceme premennú zmazať použijeme na to funkciu unset ();
Ak by sme chceli zrušiť predošlú premennú , použijeme zápis :
unset($_SESSION["premenna"]);

SESSION ID

Aby sme využili silu session , musíme vedieť prenášať meno session , resp. jej id. Session id (SID) je automaticky generovaný jednoznačný identifikátor danej session.
Je to vlastne konštanta ,ktorá v prípade ,že pracujú cookies neobsahuje žiadnu hodnotu - identifikátor je uložený cez cookies , ak sú tie zakázané obsahuje identifikátor pre predanie session cez url. Názov tejto premennej sa môže líšiť v závislosti od nastavenia webservera.
Ak je SID vygenerované , stačí nám ho pridať za odkaz na ďalšiu stránku :
<a href="stranka2.php?<?php echo SID; ?>">odkaz</a>

Viac už napovie ďalší príklad :
Príklad 26
súbor 1
<?php
 
session_start(); //spustenie session
$_SESSION["premenna"]="hodnota"; //nastavenie premennej
?>
<html>
<body>
<?php
// získanie hodnoty premennej
echo $_SESSION["premenna"]; //vypise hodnota

?>
<a href="priklad26_2.php?<?php echo SID; ?>">odkaz</a> //odkaz pomocou sid
</body>
</html>


súbor 2
<?php
session_start();
?>
<html>
<body>
<?php
echo $_SESSION["premenna"];
?>
</body>
</html>


Ako som už písal SID sa používa vtedy ak cookies nepracujú , ak pracujú tak nemá žiadnu hodnotu.
Na otestovanie nastavenej session môžme použiť podobne ako pri cookies isset , alebo isvalid.

if (isset($_SESSION["session"]) {
....

NIČENIE SESSION

Na ničenie ,resp. mazanie používame v PHP funkciu session_destroy(); Ale pozor , jednotlivé premenné musíme odstrániť pomocou unset !
Ak by sme chceli zrušiť predošlú session aj s premennou "premenna" ,použijeme :
unset($_SESSION["premenna"]);
session_destroy();

session_name()

Nastavenie názvu id pre session (východzie PHPSESSID=meno) má na starosti nastavenie servera - php.ini. Konkrétne direktíva session.name . Avšak PHP pozná funkciu :
session_name();
Bez použitia parametra vracia názov id danej session.
Jej jediným voliteľným parametrom je nový názov id session. Tento musí obsahovať len alfanumerické znaky a táto funckia musí byť zavolaná ešte pred session_start().

Pre kompletný zoznam funkcií použite odkaz (v angličtine) na konci.

Tento článok Vás mal obznámiť so session v PHP. Pre praktické využitie ,napr. prihlasovanie užívateľov , je najelegantnejším riešením využiť databázu. Celkovo problematika autorizácie užívateľov si vyžaduje samostatný článok.


Články
Predošlý článok : 9. Cookies
Nasledujúci článok : 11. PHP a databáza MySQL



Odkazy
Stiahnite si príklady vypracované v článku
Externý odkaz www.php.net - zoznam funkcií pre prácu so session

php | stály odkaz

Komentáre

Pozor, na konci je potreba spočítať neľahkú matematickú úlohu! Inak komentár nevložíme. Pre tých lenivejších je tam tlačidlo kúzlo.



Prevádzkované na CMS TeaGuru spoločnosti Singularity, s.r.o., © 2004-2014