Сесии во 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

Направете две датотеки. При пуштање на првата датотека запишете во сесијата два броја, а при пуштање на втората датотека - испечатете ја на екранот сумата на овие броеви.