Що таке Cookie?
Файл cookie - це невеликий файл максимальним розміром 4 КБ, який веб-сервер зберігає на клієнтському комп'ютері.
Після встановлення файлу cookie всі наступні запити на сторінку повертають ім’я та значення файлу cookie.
Файл cookie можна прочитати лише з домену, з якого він виданий. Наприклад, набір файлів cookie, що використовує домен www.guru99.com, не можна прочитати з домену karijera.guru99.com.
Більшість веб-сайтів в Інтернеті відображають елементи з інших доменів, таких як реклама. Домени, що обслуговують ці елементи, також можуть встановлювати власні файли cookie. Вони відомі як сторонні файли cookie.
Файл cookie, створений користувачем, може бути видимим лише для них. Інші користувачі не можуть побачити його значення.
Більшість веб-браузерів мають можливості вимкнення файлів cookie, сторонніх файлів cookie або обох.
У цьому випадку PHP відповідає, передаючи маркер cookie в URL-адресу.
Діаграма, показана нижче, ілюструє роботу файлів cookie.
Ось,
1) Користувач запитує сторінку, на якій зберігаються файли cookie
2) Сервер встановлює файл cookie на комп'ютері користувача
3) Інші запити сторінки від користувача повернуть ім’я та значення файлу cookie
У цьому підручнику ви дізнаєтесь-
- Чому і коли використовувати файли cookie?
- Створення файлів cookie
- Отримання значення Cookie
- Видалити файли cookie
- Що таке сесія?
- Чому і коли використовувати сеанси?
- Створення сесії
- Знищення змінних сеансу
Чому і коли використовувати файли cookie?
-
Http - протокол без громадянства; файли cookie дозволяють нам відстежувати стан програми за допомогою невеликих файлів, що зберігаються на комп'ютері користувача.
Шлях, куди зберігаються файли cookie, залежить від браузера.
Internet Explorer зазвичай зберігає їх у папці Temporal Internet Files.
-
Персоналізація взаємодії з користувачем - це досягається шляхом надання користувачам можливості вибрати свої уподобання.
Сторінки, про які слід запитувати, персоналізовані на основі встановлених налаштувань у файлах cookie.
- Відстеження сторінок, які відвідує користувач
Створення файлів cookie
Давайте тепер розглянемо основний синтаксис, який використовується для створення файлів cookie.
ТУТ,
- Php “setcookie” - це функція PHP, яка використовується для створення файлу cookie.
- “Cookie_name” - це ім’я файлу cookie, яке сервер використовуватиме при отриманні його значення із змінної масиву $ _COOKIE. Це обов’язково.
- “Cookie_value” - значення файлу cookie та його обов’язкове значення
- “[Expiry_time]” є необов’язковим; його можна використовувати для встановлення терміну дії файлу cookie, наприклад 1 години. Час встановлюється за допомогою функцій PHP time () плюс або мінус кількість секунд, що перевищує 0, тобто time () + 3600 на 1 годину.
- “[Шлях до файлу cookie]” необов’язковий; його можна використовувати для встановлення шляху до файлів cookie на сервері. Коса риска «/» означає, що файл cookie буде доступний у всьому домені. Підкаталоги обмежують доступ файлів cookie до субдомену.
- «[Домен]» не є обов’язковим, він може використовуватися для визначення ієрархії доступу до файлів cookie, тобто www.cookiedomain.com означає весь домен, тоді як www.sub.cookiedomain.com обмежує доступ файлів cookie до www.sub.cookiedomain.com та його допоміжної сторінки домени. Зверніть увагу, що можливо мати субдомен субдомену, якщо загальна кількість символів не перевищує 253 символів.
- “[Захищений]” необов’язковий, за замовчуванням - false. За його допомогою визначається, чи надсилається файл cookie через https, якщо для нього встановлено значення true або http, якщо для нього встановлено значення false.
- “[Httponly]” не є обов’язковим. Якщо для нього встановлено значення true, то лише клієнтські мови сценаріїв, тобто JavaScript, не можуть отримати до них доступ.
Примітка: функція cookie набору php повинна бути виконана перед початковим тегом HTML.
Давайте зараз розглянемо приклад, який використовує файли cookie.
Ми створимо базову програму, яка дозволяє зберігати ім’я користувача у файлі cookie, термін дії якого закінчується через десять секунд.
У наведеному нижче коді показано реалізацію наведеного вище прикладу “cookies.php”.
Вихід:
the cookie has been set for 60 seconds
Отримання значення Cookie
Створіть ще один файл із назвою "cookies_read.php" із таким кодом.
Вихід:
Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )
Примітка: $ _COOKIE - це PHP, вбудований у супер глобальну змінну.
Він містить імена та значення всіх встановлених файлів cookie.
Кількість значень, які
Масив $ _COOKIE може містити, залежить від обсягу пам'яті, встановленого в php.ini.
Значення за замовчуванням - 1 Гб.
Тестування нашої програми.
Припустимо, ви зберегли свої файли PHP у папці phptus.
- Крок 1 - Відкрийте веб-браузер і введіть URL-адресу http: //localhost/phptuts/cookies_read.php
Примітка: Відображено лише порожній масив
- Крок 2 - Переглядач за URL-адресою http: //localhost/phptuts/cookies.php
- Крок 3 - Поверніться до першої вкладки, потім натисніть кнопку оновлення
Зачекайте хвилину, а потім натисніть кнопку оновлення ще раз. Які результати ви отримали?
Видалити файли cookie
- Якщо ви хочете знищити файл cookie до закінчення терміну його дії, тоді ви встановлюєте час закінчення до часу, який уже минув.
- Створіть нову папку cookie_destroy.php з таким кодом
- Повторіть кроки від 1 до 3 із наведеного вище розділу щодо отримання значень файлів cookie.
- Відкрийте URL-адресу http: //localhost/phptuts/cookie_destroy.php
- Перейдіть до URL-адреси http: //localhost/phptuts/cookies_read.php, які результати він відображає?
Що таке сесія?
- Сеанс - це глобальна змінна, що зберігається на сервері.
- Кожному сеансу присвоюється унікальний ідентифікатор, який використовується для отримання збережених значень.
- Щоразу, коли створюється сеанс, файл cookie, що містить унікальний ідентифікатор сеансу, зберігається на комп'ютері користувача і повертається з кожним запитом на сервер. Якщо браузер клієнта не підтримує файли cookie, в URL-адресі відображається унікальний ідентифікатор php-сесії
- Сеанси здатні зберігати відносно великі дані порівняно з файлами cookie.
- Значення сеансу автоматично видаляються при закритті браузера. Якщо ви хочете зберігати значення постійно, вам слід зберігати їх у базі даних.
- Подібно до змінної масиву $ _COOKIE, змінні сеансу зберігаються у змінній масиву $ _SESSION. Як і файли cookie, сеанс повинен розпочинатися перед будь-якими тегами HTML.
Чому і коли використовувати сеанси?
- Ви хочете більш надійно зберігати важливу інформацію, таку як ідентифікатор користувача, на сервері, де зловмисні користувачі не можуть вгамовувати їх.
- Ви хочете передавати значення з однієї сторінки на іншу.
- Вам потрібна альтернатива файлам cookie у браузерах, які не підтримують файли cookie.
- Ви хочете зберігати глобальні змінні ефективніше та безпечніше порівняно з передачею їх у URL-адресі
- Ви розробляєте такий додаток, як кошик для покупок, який повинен тимчасово зберігати інформацію ємністю більше 4 КБ.
Створення сесії
Для того, щоб створити сеанс, спочатку потрібно викликати функцію PHP session_start, а потім зберегти свої значення у змінній масиву $ _SESSION.
Припустимо, ми хочемо знати, скільки разів завантажувалася сторінка, для цього ми можемо використовувати сеанс.
У наведеному нижче коді показано, як створювати та отримувати значення з сеансів
Вихід:
You are visitor number 1
Знищення змінних сеансу
Функція session_destroy () використовується для знищення всіх змінних сеансу Php.
Якщо ви хочете знищити лише один сеанс, використовуйте функцію unset ().
У наведеному нижче коді показано, як використовувати обидва методи.
Session_destroy видаляє всі дані сеансу, включаючи файли cookie, пов'язані з сеансом.
Unset звільняє лише окремі змінні сеансу.
Інші дані залишаються недоторканими.
Резюме
- Файли cookie - це невеликі файли, збережені на комп'ютері користувача
- Файли cookie можна читати лише з домену-видавця
- Файли cookie можуть мати термін дії, якщо він не встановлений, термін дії файлів cookie закінчується, коли браузер закритий
- Сеанси схожі на глобальні змінні, що зберігаються на сервері
- Кожному сеансу надається унікальний ідентифікаційний ідентифікатор, який використовується для відстеження змінних для користувача.
- І файли cookie, і сеанси потрібно запускати до того, як будь-які теги HTML будуть відправлені у браузер.