Урок 10

Сесії в PHP або як дані про користувача, що зайшов на сайт, або покупця зберігаються при переході між сторінками сайту без особливих труднощів. Урок дуже важливий. Актуальний для створення 95% сайтів.

Що таке сесія у php

Сесії використовуються для збереження відомостей тимчасових даних (наприклад, про те, що користувач зайшов на сайт) під час переходів між сторінками одного сайту. Під час використання сесій дані зберігаються у тимчасових файлах на сервері.

Існує також технологія з cookies, про яку Ви швидше за все чули. Куки зберігаються на комп'ютері користувача, і на запит надсилаються браузером серверу. Але про це в іншому уроці.

Логіка роботи сесії

Session (або сесія) це якесь тимчасове сховище даних. Відразу попереджаю, варто зберігати невеликий обсяг даних. Наприклад, логін і пароль користувача або його порядковий номер в базі даних.

Приклад роботи1. Користувач вводить логін і пароль і заходить на сайт2. Дані з логіном та паролем зберігаються в сесії однієї зі сторінок сайту:

Файлindex.php

3. При переході на іншу сторінку сайту ці дані також будуть доступні:

Файлexample.php (або будь-яка інша сторінка)

Бачите, все просто!

4. Якщо хочете очистити дані сесії, достатньо:

Файлexample.php

Загалом подібна передача схожа на метод POST, але тільки Ви вже не повинні писати багато зайвого коду, а всі дані, що передаються від сторінки до сторінки, зберігаються у тимчасових файлах на сервері. Повторюся, сесії повинні містити невеликі обсяги даних, тому вони підходять під зберігання логіна/паролю,кошики покупця та інших невеликих об'ємів.

Передача значення або масиву за допомогою сесії PHP

У сесію можна записувати як рядок, а й масив даних. Тільки не перестарайтеся з обсягом масиву, так як все це вплине на швидку дію і зайняте простір на сервері.

Знову використовуємо якусь стартову сторінкуindex.php

Зберегли дані в сесії і переходимо за посиланням на іншу сторінку, де всі дані і виводитимемо.

Файл одержувач, сторінкаtest.php де відкриваємо масив

Можливо, Ви захочете освіжити у пам'яті урок з масивів у PHP. Загалом же все має бути зрозумілим.

Інші функції для роботи з сесіями

session_unregister(string) - сесія забуває значення заданої глобальної змінної;session_destroy() - сесія знищується (наприклад, якщо користувач залишив систему, натиснувши кнопку вихід);session_set_cookie_params(int lifetime [, string path [, string domain]]) - за допомогою цієї функції можна встановити, як довго житиме сесія, задавши unix_timestamp визначальний час смерті сесії.

Список функцій для роботи з сесіями (session) у php

За умовчанням, сесія живе доти, доки клієнт не закриє вікно браузера.

Приклади роботи сесій

Лічильник відвідувань однієї сторінки в рамках однієї сесії

При кожному переході лічильник буде збільшуватися на 1)