Programujeme v jazyku PHP - Session premenné

Lukáš Ďurjan  /  11. 08. 2003, 00:00

7. diel Programovania v PHP / Session premenné sú premenné, bez ktorých sa dnes nezaobíde žiadna rozsiahlejšia webová aplikácia. V tejto lekcii, teda témou dnešnej lekcie, sú session premenné. Je to jeden z najpohodlnejších spôsobov vytvárania premenných bez nutnosti využitia riadku form action.

Session premenné sú naozaj vynikajúcou vymoženosťou systému PHP, a preto by sme sa mali ihneď pustiť do práce s týmto typom premenných.

Využiteľnosť session premenných spočíva v tom, že každá iná stránka môže vedieť o ktorú premennú ide, a to pomocou jednoduchého príkazu – session_start(), čo znamená, že nový príkaz, ktorý sa dnes naučíme je práve tento.

Ako vlastne začať skript s použitím session premenných ? Je to úplne jednoduché. Stačí použiť príkaz sesion_start() ako každý iný príkaz v PHP. Aby ďalší súbor vedel o premennej session, musíme najprv premennú zaregistrovať pomocou príkazu session_register().

PHP4 obsahuje mechanizmus, ktorý dokáže určité zareistrované premenné určiť ako session premenné. Tieto premenné, aby boli zaregistrované, sa musia ukladať do pamäte počítača, alebo do nejakého adresára. V prípade, že by Vám toto nestačilo, je možné využiť aj oveľa luxusnejší spôsob, a to zápis do databázy.

Ak sa stretávame so session premennými po prvýkrát (s tým, že konfigurácia PHP nebola menená), musíme urobiť v jeho konfigurácii isté zmeny, konkrétne sa budú týkať definície adresára na pevnom disku počítača. V súbore php.ini si preto vyhľadáme riadok session.save_path, kde si nastavíte adresár, do ktorého sa vaše session premenné budú ukladať, napr. C:/tmp.

Ak sa Vám po vyskúšaní objaví na stránke milión chýb, konfigurácia nie je správna, a preto sa ju pokúste znova prerobiť.

Po chvíľke teórie sa môžeme s radosťou pustiť do práce.

Vytvorte si dva súbory: prvy.php a druhy.php.

Do prvého súboru zapíšeme nasledujúci skript:

<?
session_start(); //spustenie session premenných
session_register(“sprava“);                   //zaregistrovanie session premennej
$sprava = “zachovaná“;           //definícia premennej v session_register („zachovaná“ je text)
?>
Tu si overíme, či je naša session premenná <? echo $sprava ?><br>
Ďalej si zistíme, či je zachovaná aj v druhom súbore - <a href=“druhy.php“>TU</a>

Ten druhý bude tvorený nasledujúcim skriptom:

<?
session_start(); //začiatok session premennej
?>

Takže zisťujeme, že naša premenná je <? Echo $sprava ?>

ROZŠÍRENIE:

Je tiež možné, že niektorý z užívateľov nemusí mať zapnutú funkciu cookies, a v tom prípade mu predchádzajúci príklad fungovať nebude. Tento problém rieši konštanta SID, ktorá obsahuje kompletné nastavenie parametra.

Skript bez použitia cookies teda bude vyzerať takto: 

<?
session_start();
session_register(“sprava“);
$sprava = “zachovaná“;
?>
Tu si overíme, či je naša session premenná <? echo $sprava ?><br>
Či je premenná znova zachovaná si overíme <a href=“druhy.php?<? echo SID ?>“>TU

Druhý súbor bude tvorený rovnakým skriptom ako aj v prvom príklade. 

MINITEST:

  • Na čo využívame session premenné ?
  • Ako zvereníme v skripte, že ide o sesssion premenné ?
  • Akým príkazom registrujeme session premenné ?
  • Ako definujeme session premennú pomocou obyčajnej ?

ÚLOHA:

Pokúste sa Vy sami vytvoriť webovú aplikáciu, v ktorej zúžitkujete vlastnosti session premennej.

Neprehliadnite: