PHP/PHP სესიები

ვიკიწიგნებიდან
< PHP

PHP სესიის ცვლადები[რედაქტირება]

როდესაც ვმუშაობთ პროგრამასთან, ჩვენ ვხსნით მას, ვაკეთებთ ცვლილებებს და შემდგომ ვხურავთ მას. ეს ჰგავს სესიას. კომპიუტერმა იცის ვინ ხარ შენ. მან იცის ჩვენ როდის გავუშვით პროგრამა და როდის დავხურეთ. მაგრამ ინტერნეტში არის ერთი პრობლემა: ვებ სერვერმა არ იცის ვინ ხარ შენ და რას აკეთებ.
PHP სესია ჭრის ამ პრობლემას. თუმცა, სესიის ინფორმაცია დროებითია და წაიშლება მას შემდეგ რაც მომხმარებელი დატოვებს ვებ გვერდს. სესია ქმნის უნიკალურ სახელს (UID) თითოეული ვიზიტორისათვის და აგროვებს ცვლადების ბაზას UID-ზე.

PHP სესიის დაწყება[რედაქტირება]

სანამ ჩვენ შევაგროვებთ ინფორმაციას PHP სესიაზე, ჩვენ უნდა დავიწყოთ სესია.
შენიშვნა: session_start() ფუნქცია იწერება <html> ტეგამდე:

<?php session_start(); ?>
<html>
<body>
</body>
</html>

ზემოთ მოყვანილი კოდი დაარეგისტრირებს მომხმარებლის სესიას, საშუალებას მოგვცემს შევინახოთ მომხმარებლის ინფორმაცია და მივანიჭოთ UID ამ მომხმარებლის სესიას.

სესიის ცვლადების შეგროვება[რედაქტირება]

სწორი გზა სესიის ცვლადების შეგროვებისა და ჩასწორების არის PHP $_SESSION ცვლადის გამოყენება:

<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>

დაბეჭდავს:

Pageviews=1

ქვემოთ მოყვანილ მაგალითში, ჩვენ შევქმნით უბრალო მთვლელს. isset() ფუნქცია შეამოწმებს "views" ცვლადი უკვე დასმულია თუ არა. თუ "views" უკვე დასმულია, ჩვენ შეგვიძლია გავზარდოთ ჩვენი მთვლელი. თუ "views" არ არსებობს, ჩვენ ვქმნით"views" ცვლადს და ვაყენებთ მას 1-ზე:

<?php

session_start();
if(isset($_SESSION['views']))
  $_SESSION['views']=$_SESSION['views']+1;

else
  $_SESSION['views']=1;
echo "Views=". $_SESSION['views']; 
?>

სესიის განადგურება[რედაქტირება]

თუ გვსურს სესიის მონაცმეთა წაშლა,ჩვენ შეგვიძლია გამოვიყენოთ unset(), ან session_destroy() ფუნქციები.
unset() ფუნქცია გამოიყენება სესიის ცვლადის გასანთავისუფლებლად:

<?php
unset($_SESSION['views']);
?>

ჩვენ ასევე შეგვიძლია საბოლოო გავანადგუროთ სესიის ცვლადი session_destroy() ფუნქციის გამოყენებით:

<?php
session_destroy();
?>

შენიშვნა: session_destroy() ფუნქცია წაშლის ყველა მონაცემს ცვლადში.