Урок 12 сессііrustutorial

При відвідуванні сайту ви виконуєте різні дії. Переходьте з однієї сторінки на іншу. Можливо, заповнюєте форму або купуєте щось.

Це дуже важливо враховувати при створенні успішних веб-проектів.

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

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

РНР-сесії дають можливість працювати з інформацією про користувача сесії. Ви можете створювати додатки, які ідентифікують і збирають інформацію про користувачів.

Сесії можуть починатися різними способами. Ми не будемо заглиблюватися в технічні тонкощі, а сконцентруємося на варіанті, коли сесія починається з збереження значення. Сесія закінчується / загинається (dies), якщо користувач не запитує сторінок протягом якогось часу (стандартне значення - 20 хвилин). Зрозуміло, ви в будь-який момент можете закінчить / вбити сесію в вашому скрипті.

Скажімо, 50 користувачів переглядають сторінки одного сайту, наприклад, веб-шоп. Інформацію про те, що у кожного відвідувача в кошику, найкраще зберегти сесії. Щоб ідентифікувати користувачів, сервер використовує унікальні користувальницькі ідентифікатори / user ID, які зберігаються в куках. Кука це невеликий текстовий файл, що зберігається на комп'ютері користувача (див. Урок 13). Отже, сесії часто вимагають підтримки кук в браузерах користувачів.

Приклад використання сесій

Якщо ви запитуєте цю сторінку, я зберігаю даний час в сесії. Я зробив це і можу тепер показати вам приклад роботи сесії.

Я назвав елемент "StartTime" і зберіг його, додавши наступний рядок в мій РНР-скрипт:

Таким чином, сесія почалася. Як сказано вище, кожна сесія отримує ID від сервера.

Ваша сесія має наступний ID: 759m0fv784pnqnovd1j0gp2135

У будь-який час я можу викликати "StartTime" з сесії, ввівши:

що покаже, що сторінка була запрошена в (відповідно до пори даного веб-сервера).

Але цікаво, штаа ця інформація залишається в сесії, навіть після виходу зі сторінки. Ця інформація буде супроводжувати вас, поки ваша сесія не завершиться.

За замовчуванням сесія триває, поки користувач не закриє вікно браузера, і тоді вона загинається автоматично. Але якщо ви хочете примусово завершити сесію, її завжди можна замочити таким чином:

Подивимося ще один приклад використання сесій: з паролем.

Логін в систему з сесіями

У наступному прикладі ми створимо просту систему з логіном. Використовуємо багато з того, що вивчили на попередніх заняттях.

Перше, що необхідно, це форма, в якій люди можу вказувати username і password. Вона може виглядати так:

Потім створимо файл login.php.

У цьому файлі ми перевіряємо, чи введені коректні username і password. Якщо це так, ми починаємо сесію, в якій зазначено, що користувач увійшов з коректними username і password.

При роботі з захищеними файлами ми перевіряємо, увійшов користувач з коректним логіном. Якщо немає, the користувач відправляється назад до логін-формі. Ось як робиться цей захист:

Ви отримали уявлення про об'єкт Session. У наступному уроці ми продовжимо роботу в цьому ж напрямку, але також докладніше познайомимося з куками.

Схожі статті