Сесії в php

Сесії в PHP

сесії - це механізм, що дозволяє зберігати певні дані на сервері, унікальні для кожного користувача. Особливо уважні читачі знайдуть схожість з cookie. І, в цілому, це одне й те саме. Однак, ключовий момент: дані зберігаються не в браузері користувача, а в спеціальному файлі на сервері, ім`я якого унікально для кожного користувача. А унікальний ідентифікатор сесії PHP зберігається вже в cookie.

Давайте з Вами попрацюємо з сесіями в PHP. І почнемо з функції session_start (). Ця функція робить наступне: якщо користувач зайшов вперше, то створює унікальний ідентифікатор і записує його в cookie, а також створює новий файл, знову унікальний для користувача. Якщо користувач вже заходив, то тоді сервер зчитує значення унікального ідентифікатора з cookie і, відповідно до нього, звертається до потрібного файлу сесії. З цього файлу PHP зчитує всю інформацію про і поміщає їх в масив $ _SESSION. Давайте напишемо простий код, в якому ми записуємо змінну в сесію, або зчитуємо, якщо вона вже була записана.

Відео: Розумне використання сесій в PHP

lt ;?php
session_start
() -
if(isset($ _SESSION[`Name`])) $ name = $ _SESSION[`Name`] -
else $ _SESSION[`Name`]="15St"-
echo $ name
-
?gt;

Спочатку ми викликаємо функцію session_start (), яку я описав вище. Потім перевіряємо: чи існує змінна "name"В сесії. Якщо існує, то зчитуємо з неї дані і записуємо в змінну name. Якщо не існує (тобто користувач прийшов в перший раз), то встановлюємо змінної "name"В сесії значення"15St.". Наступним рядком виводимо значення змінної $ name. Очевидно, що при першому запуску, Ви побачите порожню рядок, а ось при другому побачите рядок "15St.", Зчитану з сесії.

Відео: Уроки PHP 7 | Сесії в php. Як працювати з сесіями




Раджу Вам зараз ввести в адресному рядку: "jаvascript: document.cookie"(Вводите на тій же вкладці, що і запускали скрипт). В результаті, Ви побачите приблизно наступне:"PHPSESSID = f99c53cca398f756fa958e8cee2136bc". Як раз значення PHPSESSID і є тим самим унікальний ідентифікатор.

І щоб все стало зовсім зрозуміло, то раджу навіть знайти файл сесії. Якщо Ви використовуєте Denwer, то він лежить в папці "tmp". Подивіться на файли, які починаються на"sess_"- це і є ті самі файли сесії. Ви можете їх відкрити в простому блокноті.

Відео: دورة PHP: الدرس 24 (الجلسات Session)




Ще одне дуже важливе властивість - це тимчасовість сесій в PHP. те якщо cookie зберігаються до тих пір, поки їх не видалить браузер. А браузер їх за замовчуванням не видаляє ніколи. Те сесії зберігаються час, заданий в настройках PHP. За замовчуванням, це 15 хвилин. Тобто якщо Ви будете використовувати аутентифікацію на основі сесії, то через 15 хвилин бездіяльності користувача, йому знову доведеться авторизуватися. Зрозуміло, це добре, тому що якщо користувач забуде "вийти", То нічого поганого не трапиться. Зловмисник не зможе скористатися профілем користувача. Більш того, при використанні cookie їх можна викрасти, підставити в своєму браузері, і в результаті зловмисник авторизований під чужими даними, не знаючи навіть пароля. А сесію вкрасти не вийде, так як всі параметри зберігаються на сервері, і дізнатися про них не вийде.

Тому намагайтеся в своїй практиці переважно використовувати сесії, а не чисті cookie.

І, наостанок, хочеться попередити про дуже частою помилку. Ніколи не виводьте дані в браузери до використання функції session_start (), інакше вона видасть помилку. Тобто не можна писати ось так:

lt ;?php
echo
"Hello"-
session_start
() -
?gt;

При запуску даного скрипта виникне помилка. Те ж саме правило діяло і з cookie (функція setcookie ()). Так що, думаю, тут все зрозуміло.

Щодо сесій в PHP, то, зрозуміло, їх можна використовувати для зберігання даних про статистику, аутентифікації, особистих налаштувань користувача та інших аналогічних речей.

Поділися в соціальних мережах:

Схожі
Обробка форми в phpОбробка форми в php
Localstorage. Локальна пам`ять на html5.Localstorage. Локальна пам`ять на html5.
Змінні оточення в linuxЗмінні оточення в linux
Відправка cookie через curlВідправка cookie через curl
Як заблокувати користувача на сайтіЯк заблокувати користувача на сайті
Logoff - завершення сеансу користувача windows.Logoff - завершення сеансу користувача windows.
Робота з файлами в phpРобота з файлами в php
Group by в sqlGroup by в sql
Робота з cookie в phpРобота з cookie в php
Як зробити реєстрацію та авторизацію користувачів на сайтіЯк зробити реєстрацію та авторизацію користувачів на сайті
» » Сесії в php