Munkamenetek a PHP-ban

Amikor egy weboldalt látunk a böngészőnkben, az oldal PHP szkriptje már rég végzett a munkával és elfelejtett minket. Ezért, ha egyik oldalról a másikra navigálunk - a PHP szkript nem tudja megjegyezni az előző oldal adatait, például a változók értékeit.

Egy ilyen mechanizmus azonban nagyon szükséges, már csak azért is, hogy emlékezzen a felhasználó választására vagy arra, hogy a felhasználó be volt jelentkezve.

A PHP-ban a felhasználói adatok oldalak közötti tárolására a munkamenetek szolgálnak. Bármilyen információt el tudunk menteni a munkamenetbe és onnan olvasni azt ugyanannak vagy egy másik szkriptnek a következő futtatásakor. A munkamenet segítségével megvalósítható a felhasználók azonosítása, egy internetes áruház kosara és egyéb funkciók.

A felhasználó munkamenete a szerveren tárolódik. Ugyanakkor nem örökké él, csak nagyjából fél óráig - ha a felhasználó ezalatt nem végzett semmilyen kérést a weboldalhoz, akkor a munkamenete törlődik és üressé válik.

Nos, nézzük meg, hogyan kell dolgozni a munkamenetekkel a PHP-ban. Ahhoz, hogy valamit a munkamenetbe menthessünk, azt először el kell indítanunk a session_start függvénnyel:

php<?php
  session_start();
?>

Az inicializálás után már írhatunk valamit a munkamenetbe vagy olvashatunk onnan valamit. Ez a $_SESSION szuperglobális tömb segítségével történik.

Próbáljuk ki gyakorlatban. Készítsünk egy test1.php fájlt és helyezzük el benne a következő kódot:

test1.php<?php
  session_start();
  $_SESSION['test'] = 'abcde'; // írunk a munkamenetbe
?>

Az test2.php fájlban pedig a következő kódot:

test2.php<?php
  session_start();
  echo $_SESSION['test']; // olvasunk a munkamenetből
?>

Most először nyissa meg a böngészőjében a test1.php fájlt, majd a test2.php fájlt. A második fájl megnyitásakor a böngészőben megjelenik az, ami az első fájlban a munkamenetbe volt írva.

Задание 1

Készítsen két fájlt. Az első fájl futtatásakor menten a munkamenetbe két számot, a második fájl futtatásakor pedig írja ki a képernyőre ezeknek a számoknak az összegét.