სესიები PHP-ში

როდესაც ჩვენ ვხედავთ საიტის გვერდს ჩვენს ბრაუზერში, ამ გვერდის PHP სკრიპტი უკვე დიდი ხანია იმუშავა და დაგვავიწყდა. ამიტომ, თუ ჩვენ გადავდივართ საიტის ერთი გვერდიდან მეორეზე - PHP სკრიპტს არ შეუძლია დაიმახსოვროს მონაცემები წინა გვერდიდან, მაგალითად, ცვლადების მნიშვნელობები.

თუმცა, ასეთი მექანიზმი ძალიან საჭიროა, თუნდაც იმისთვის, რომ დაიმახსოვროს მომხმარებლის არჩევანი ან ის, რომ მომხმარებელი იყო ავტორიზებული.

PHP-ში მომხმარებლის მონაცემების გვერდებს შორის შესანახად განკუთვნილია სესიები. ჩვენ შეგვიძლია ჩავწეროთ რაიმე ინფორმაცია სესიაში და წავიკითხოთ იქიდან ამის ან სხვა საიტის სკრიპტის შემდეგ გაშვებაში. სესიის საშუალებით შესაძლებელია რეალიზება მომხმარებლების ავტორიზაციის, ინტერნეტ-მაღაზიის კალათის და სხვა.

მომხმარებლის სესია ინახება სერვერზე. ამასთან, ის სამუდამოდ არ ძლებს, არამედ დაახლოებით ნახევარ საათს - თუ მომხმარებელი ამ დროის განმავლობაში არ შეასრულა საიტთან არანაირი მიმართვა, მაშინ მისი სესია წაიშლება და გახდება ცარიელი.

მოდით, ვნახოთ, როგორ ვიმუშაოთ სესიებთან PHP-ში. იმისთვის, რომ რამე ჩავწეროთ სესიაში, ჯერ მისი ინიციალიზაცია სჭირდება ფუნქციის session_start საშუალებით:

php<?php
  session_start();
?>

ინიციალიზაციის შემდეგ ჩვენ შეგვიძლია ჩავწეროთ რამე სესიაში ან წავიკითხოთ რამე იქიდან. ეს კეთდება სუპერგლობალური მასივის $_SESSION საშუალებით.

მოდით ვცადოთ პრაქტიკაში. შევქმნათ ფაილი test1.php და მოვათავსოთ მასში შემდეგი კოდი:

test1.php<?php
  session_start();
  $_SESSION['test'] = 'abcde'; // ვწერთ სესიაში
?>

ხოლო ფაილში test2.php - შემდეგი კოდი:

test2.php<?php
  session_start();
  echo $_SESSION['test']; // ვკითხულობთ სესიიდან
?>

ახლა ჯერ გახსენით ბრაუზერში ფაილი test1.php, შემდეგ კი test2.php. მეორე ფაილის გახსნისას ბრაუზერში გამოჩნდება ის, რაც სესიაში ჩაიწერა პირველ ფაილში.

Задание 1

შექმენით ორი ფაილი. პირველი ფაილის გაშვებისას ჩაწერეთ სესიაში ორი რიცხვი, ხოლო მეორე ფაილის გაშვებისას - გამოიტანეთ ეკრანზე ამ რიცხვების ჯამი.