Урок 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)