Урок 12 сессііrustutorial
При відвідуванні сайту ви виконуєте різні дії. Переходьте з однієї сторінки на іншу. Можливо, заповнюєте форму або купуєте щось.
Це дуже важливо враховувати при створенні успішних веб-проектів.
Припустимо, наприклад, що ви хочете створити сайт, на якому кілька сторінок захищені логіном і паролем. Щоб цей захист діяла ефективно, захищені паролем сторінки повинні мати доступ до інформації про те, зайшов користувач раніше в систему. Ви повинні, інакше кажучи, "пам'ятати", що користувач робив до цього.
Саме про це наш урок - як використовувати сесії в PHP для збереження і отримання інформації в процесі візиту користувача на наш сайт.
РНР-сесії дають можливість працювати з інформацією про користувача сесії. Ви можете створювати додатки, які ідентифікують і збирають інформацію про користувачів.
Сесії можуть починатися різними способами. Ми не будемо заглиблюватися в технічні тонкощі, а сконцентруємося на варіанті, коли сесія починається з збереження значення. Сесія закінчується / загинається (dies), якщо користувач не запитує сторінок протягом якогось часу (стандартне значення - 20 хвилин). Зрозуміло, ви в будь-який момент можете закінчить / вбити сесію в вашому скрипті.
Скажімо, 50 користувачів переглядають сторінки одного сайту, наприклад, веб-шоп. Інформацію про те, що у кожного відвідувача в кошику, найкраще зберегти сесії. Щоб ідентифікувати користувачів, сервер використовує унікальні користувальницькі ідентифікатори / user ID, які зберігаються в куках. Кука це невеликий текстовий файл, що зберігається на комп'ютері користувача (див. Урок 13). Отже, сесії часто вимагають підтримки кук в браузерах користувачів.
Приклад використання сесій
Якщо ви запитуєте цю сторінку, я зберігаю даний час в сесії. Я зробив це і можу тепер показати вам приклад роботи сесії.
Я назвав елемент "StartTime" і зберіг його, додавши наступний рядок в мій РНР-скрипт:
Таким чином, сесія почалася. Як сказано вище, кожна сесія отримує ID від сервера.
Ваша сесія має наступний ID: 759m0fv784pnqnovd1j0gp2135
У будь-який час я можу викликати "StartTime" з сесії, ввівши:
що покаже, що сторінка була запрошена в (відповідно до пори даного веб-сервера).
Але цікаво, штаа ця інформація залишається в сесії, навіть після виходу зі сторінки. Ця інформація буде супроводжувати вас, поки ваша сесія не завершиться.
За замовчуванням сесія триває, поки користувач не закриє вікно браузера, і тоді вона загинається автоматично. Але якщо ви хочете примусово завершити сесію, її завжди можна замочити таким чином:
Подивимося ще один приклад використання сесій: з паролем.
Логін в систему з сесіями
У наступному прикладі ми створимо просту систему з логіном. Використовуємо багато з того, що вивчили на попередніх заняттях.
Перше, що необхідно, це форма, в якій люди можу вказувати username і password. Вона може виглядати так:
Потім створимо файл login.php.
У цьому файлі ми перевіряємо, чи введені коректні username і password. Якщо це так, ми починаємо сесію, в якій зазначено, що користувач увійшов з коректними username і password.
При роботі з захищеними файлами ми перевіряємо, увійшов користувач з коректним логіном. Якщо немає, the користувач відправляється назад до логін-формі. Ось як робиться цей захист:
Ви отримали уявлення про об'єкт Session. У наступному уроці ми продовжимо роботу в цьому ж напрямку, але також докладніше познайомимося з куками.