Яка функція PHP дозволяє встановити значення cookie. Setcookie - Надсилає cookie. Написання функції “Remember Me”

Файли cookie - це невеликі текстові файли, які створює браузер у спеціальній папці за програмою PHP. Хоча cookie може створити JavaScript, але в цій статті не про це. Тут ми будемо говорити тільки про встановлення cookie через програму PHP.

Файли cookie містять інформацію у вигляді пар ім'я=значення. Наприклад, в cookie можна записати логін та пароль користувача та зберігати їх на комп'ютері клієнта, щоб він наступного разу не залогінювався заново. Звичайно, зберігання логіна та пароля в cookie не найбезпечніший спосіб, і ці дані краще зберігати використовуючи сесії в PHP, але як приклад використання cookie цей випадок підійде.

PHP програма дає команду браузеру-клієнту встановити cookie, використовуючи рядок у заголовку відповіді. Тобто ви повинні уявляти, як працює інтернет, що таке заголовок запиту та заголовок відповіді, щоб зрозуміти, як працює установка cookie.

Отже, всю інформацію про те, які cookie має встановити браузер, програма PHP відправляє в заголовку відповіді.

Встановлення cookie у PHP

Для встановлення cookie у мові PHP є функція setcookie() , вона й задає cookie, яке буде передано браузеру разом з іншими заголовками HTTP.

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

Повернемося до нашої функції. Ось її синтаксис:

Bool setcookie (string ім'я, string значення, int час життя, string шлях, string домен, bool протокол, bool http only)

bool, string, int у цьому синтаксисі типи даних. Тобто "bool setcookie() " означає те, що функцій setcookie() повертає значення булевого типу. Далі перший і другий аргумент (ім'я та значення) повинні бути типу рядок (string), і так далі.

Відразу скажу, для початку вам знадобиться лише перші три параметри. На решту можете поки що не звертати уваги.

  • string ім'я - ім'я в парі ім'я = значення
  • string значення - значення в парі ім'я = значення
  • int час життя - час зберігання cookie, це позначка часу Unix, тобто. бажано задавати цей час за допомогою функції time() , додаючи час у секундах, через який термін дії cookie повинен закінчитися. Також можна скористатися функцією mktime().
  • string шлях – шлях до директорії на сервері, з якої будуть доступні cookie.
  • string домен – домен, якому доступні cookie.
  • bool протокол - вказує на те, що значення cookie має передаватися від клієнта із захищеного HTTPS з'єднання. Якщо задано TRUE, cookie від клієнта буде передано на сервер тільки якщо встановлено захищене з'єднання. Під час передачі cookie від сервера клієнту слідкувати за тим, щоб cookie цього типу передавалися захищеним каналом, повинен програміст веб-сервера.
  • bool http only - якщо встановлено TRUE, cookie будуть доступні тільки через HTTP протокол. Тобто cookie в цьому випадку не будуть доступні скриптовим мовам, на зразок JavaScript. Ця можливість була запропонована як міра, що ефективно знижує кількість крадіжок особистих даних за допомогою XSS атак (попри те, що підтримується не всіма броузерами). Варто однак відзначити, що навколо цієї можливості часто виникають суперечки про її ефективність та доцільність. Аргумент доданий до PHP 5.2.0. Може приймати значення TRUE чи FALSE.

Тільки перший параметр є обов'язковим. Якщо упустити третій параметр, то за умовчанням він дорівнює нулю, це означає, що cookie зникнуть відразу після закриття браузера.

Ось приклад установки cookie:

Цей приклад лише встановлює cookie на комп'ютер клієнта.

Отримання cookie у PHP

Минулого прикладу ми відправили браузеру команду створити cookie. Тепер він їх створив, і коли наступного разу браузер надішле запит серверу, він передасть вміст cookie в заголовку запиту.

У PHP-програнні можна визначити, надіслав браузер cookie чи ні дуже просто. Вони доступні в масиві $_COOKIE.

Давайте ускладнимо минулий приклад:

"; print_r($_COOKIE); echo "";

Коли ви відкриєте сторінку прикладу вперше, за вітанням нічого не буде. Це тому, що cookie покладені на ваш комп'ютер, але серверу ще не відправлені.

Хоча в масиві $_COOKIE вже може бути щось, але тоді ці cookie кладе не наш приклад.

Тільки оновивши сторінку вдруге, ви побачите, що PHP програма отримала пару $_COOKIE => welcome .

Зверніть увагу, що cookie покладено на одну хвилину, а це означає, що через хвилину, якщо оновити сторінку, вітання знову буде відсутнє.

Мабуть ось і все, що стосується отримання доступу до інформації з cookie в PHP.

Видалення cookie у PHP

Щоб видалити cookie, потрібно просто поставити їх термін життя в минулому часі.

Зверніть увагу, я поставив минулий час із запасом, якщо на комп'ютері клієнта час встановлено не точно.

Приклад роботи cookie у PHP

Напишемо примітивний лічильник перегляду сторінок сайту відвідувачем, використовуючи cookie.

Зауважте, що дані в цьому прикладі живуть 60 секунд, потім лічильник обнулиться.

На цьому тема робота з cookie у PHP розкрита практично повністю.

PHP transparentne supports HTTP cookies. Cookies є mechanismus for storing data in remote browser and thus tracking or identifying return users. You can set cookies using the setcookie() or setrawcookie()функція. Cookies є частиною HTTP header, so setcookie() Must be called before any output is sent to the browser. This is the same limitation that header() has. Ви можете використовувати відтворення функцій для виконання кнопок запуску until, ви повинні усвідомити, де або не до set any cookies або send any headers.

Будь-які cookies виявляють на сервері від клієнта, які автоматично можуть бути включені до $_COOKIE auto-global array if variables_order contains "C". If you wish to assign multiple values ​​до a single cookie, just add to the cookie name.

15 років тому

Загальні коментарі на Wilton's code snippet: It's generally considered дуже bad practice to store usernames і/або passwords в cookies, які або не вони's obsfucated.

Наскільки ми можемо вирішити будь-яку з використанням PHP-будівельного обладнання в програмі handler або створювати деякі подібні методи використання вашого cookie-основного session ID. Цей session ID може бути призначений до джерела IP-адреси або може бути введено в режимі, але необхідно знати, що ID може бути виявлений окремо від authentication criteria authentication itself is not compromised.

Stuart Livings

9 місяців тому

unset($_COOKIE ["cookie"]);
?>

Apenas apaga um index de uma variável, os cookies ainda vão existir e continuar a ser enviados do servidor pro client e vice-versa.
Assim como isso:

$_COOKIE ["cookie"] = "foo bar";
?>

Não cria ou altera o valor do cookie, apenas durante a execução atual, o valor que sera pasado do servidor pro cliente e vice-versa sera o original

Para excluir ou alterar deve SEMPRE для вибраного зразка antigo com setcookie(), setrawcookie() ou header(), sendo este último não muito comum e dificilmente terá um uso justificável

13 years ago

13 years ago

У відповідь на рішення повідомлено в коментарі нижче, є деякі практичні питання з цим рішенням, що повинні бути виконані в повідомленні і handled by your code. Я розробив application using a similar "use-it-once" key to manage sesions and it worked great but we got some complaints o legitimate users getting logged out without reasons. Turns out the problem was not tentative highjacking, it was either:

A- Users double click on links or make 2 clicks very fast. Теж key is sent for the 2 clicks because the new key from the first click didn"t get to the browser on time for the second one but the session on the server did trash the key for the new one. Thus, the second click causa a termination of the session.

B- Для будь-якої природної реакції, на сервері існують повільно і відповідь на новий ключ (який буде переміщений на одному сервері) не буде відновлено на браузері fast enough. User gets tired of waiting and clicks деякийде. Він дає змогу зробити цей другий click send the old key which won"t match the one you have on your server.

Наше рішення було налаштовано на короткий період, коли old key була valid (сьогодні key and the previous key wave both kept at all times, we used 15 seconds as green period where the old key could still be used). Це має натиснути на збільшення вікна часу для людини до високої піктограми, але якщо ви впевнені, що ця кнопка була на IP-адресі і/або user agent string, ви продовжуєте отримувати добрий день безпеки з дуже вельми few un session termination.

10 років тому

Це не потрібно, щоб запобігти вашим cookies і IP і блоку IP, якщо вона є різною людиною, використовуючи Portable Browsers, які будуть remember cookies. Це означає, що ви побачите реєстраційну клавіатуру, якщо IP-адреса не відповідає відповідній програмі cookie's IP.

14 years ago

Я маю рішення для захисту session ID без будь-якого клієнта" з IP. ), перша один з користувачів і пиратів, які будуть використовувати cookie, щоб отримати другий disconnected, тому що session ID буде використовуватися.

Якщо ваші користувачі роз'єднані, він буде відключений: як моя політика не може більше однієї сеансу ID для кожного користувача (сезонні написи мають UNIQUE key on the colomn in which is stored user login), every entries for that user gets , a new session ID is generated and stored on users dirve: the pirate gets disconnected. Ці літи pirate зазвичай just a few seconds to act. Слайкі visitors є browsing, longer is the time pirates get for hacking. Also, if users forget explicitly end their sessions .... some of my users set timeout longer than 20 minutes !

IMPORTANT NOTE: Це неможливість використання задньої клавіші, якщо ви збираєтеся ID ID за допомогою POST або GET.

12 років тому

Якщо ви намагаєтеся скористатися завданням, що не потребує клієнта IP, ви можете використовувати правильний-на-всього спосіб методу нижче, але для надійного посвідчення про сценарій, де legitimate user clicks twice, ви можете використовувати shutdown function (register_shutdown_fun.

Це буде скасувати, якщо script встановлений попередньою (connection_aborted), і reset the valid session ID. Це означає, що це правильне значення, коли користувачі матимуть відповідь. Якщо script ends properly, the new session ID will be used instead.

Новий, без вас може бути "set set cookie від shutdown function (у зв'язку з ним), cookie повинен знаходитись над попереднім valid session ID і новий один. one to use.

:: Pseudo example:
::
::
::
:: 1. Get the session ID(s) від cookie
:: 2. Якщо один пункт ID's is still valid (that is, if there"s atorage associated with it - in DB, file or whatever)
:: ____2.1. Open the session
:: 3. Generate a new session ID
:: 4. Залишити новий session ID з одним just used в cookie
:: 5. Register shutdown function
::
::
::
:: 1. If script ended prematurely
:: ____1.1. Save session data using the old Session ID
:: 2. Else
:: ____2.1. Save session data using the new Session ID
:: ____2.2. Make sure the old session ID is added to a list of ID"s (used for the purpose described below)
:: ____2.3. Trash the old session storage

Там є можливість можливості певної мережі сніффера, що сприймає session cookie як це, щоб скористатися клієнтом, і використовуючи його для клієнта, щоб змінити. Це, успішно hijacking the session.

Якщо old session ID is used, we must assume the session has been hijacked. Якщо клієнт повинен бути введений у вхід його/це слово перед тим, як бути back. Now, since we have to assume that only legitimate user has password we won"t send back any data until a password is sent from one request.

І, напевно, (як на sidenote) ми повинні обстежити логіну деталей (якщо клієнт має підтримку для JavaScript), щоб скасувати форму, як вона є, застосовується поточний timestamp і прийде до форми в динамічно генерованої висоти форми об'єкта, replace the password field with new password that is the MD5 (or similar) of timestamp and the real password. On serverside, script буде приймати timestamp, дивитися на користувача" реальний password and make the proper MD5. a session, що "з попередньою вірою в, безперечно ми знаємо, що password (s)he"s узгоджений." and then md5 timestamp and the user cred.

Якщо ви потребуєте JavaScript для md5.

Визначає куку для відправки разом з іншою інформацією. Куки повинні бути відправлені добудь-яких інших шапок/headers (це обмеження кук, а не РНР). Це вимагає, щоб викликали цю функцію перед першим виведенням на сторінку, тобто. до тэга.

int setcookie(string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

Усі аргументи, крім name, є необов'язковими. Якщо є лише аргумент name, куку з цим ім'ям буде видалено з віддаленого клієнта. Ви можете також замістити будь-який аргумент порожнім рядком ( "" ), щоб пропустити цей аргумент. Аргументи expireі secureце цілі числа/integer і вони не можуть бути пропущені за допомогою порожнього рядка. У них використовуйте нуль ( 0 ). Аргумент expireце звичайне Unix time integer, що повертається функціями time()або mktime(). Аргумент secureвказує, що дана кука повинна передаватися тільки через секретне з'єднання HTTPS.

Після того, як куки встановлені, доступ до них може бути отриманий при завантаженні наступної сторінки через $_COOKIE масив (який викликається $HTTP_COOKIE_VARS у версіях PHP до 4.1.0).

Звичайні пастки:

    Куки будуть невидимі, доки не буде завантажена наступна сторінка.

    Куки повинні бути видалені з тими самими параметрами, з якими були встановлені.

У PHP 3 множинні виклики setcookie()у тому ж скрипті можуть бути виконані у реверсному порядку. Якщо ви намагаєтеся видалити одну куку до вставлення іншої, ви повинні зробити вставку до видалення. У PHP 4 множинні виклики setcookie()виконуються у порядку дзвінка.

Приклад 1. Надсилання кук функцією setcookie()
setcookie ("TestCookie", $ value); setcookie ("TestCookie", $value,time()+3600); // період дії - 1 година setcookie ("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);

При видаленні cookie ви повинні переконатися, що дата закінчення дії пройшла, щоб переключити механізм у вашому браузері. Далі йдуть приклади видалення cookie, створеної в попередньому прикладі:

Приклад 2. Видалення cookie за допомогою setcookie()
// встановити дату закінчення дії на годину тому setcookie ("TestCookie", "", time() - 3600); setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
Приклад 3. Видалення всіх кук
foreach($_COOKIE as $ind=>$val) @setcookie($ind,"",time()-999, "/", ".".$_SERVER["SERVER_NAME"]);
приклад 4.

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

Echo $TestCookie; echo $_COOKIE["TestCookie"];

Приклад 5.

Ви також можете встановити кукі масиву, використовуючи нотацію в імені куки. Це дає ефект установки стільки кук, скільки елементів у цьому масиві, але коли кука виходить скриптом, значення поміщаються в масив з ім'ям куки:

Setcookie ("cookie", "cookiethree"); setcookie ("cookie", "cookietwo"); setcookie ("cookie", "cookieone"); foreach($_COOKIE як $name=>$val) ( echo "$name = $value
\n"; )

Приклад 6.

Якщо у Вашого сервера два доменних імені: "www.domain.com" та "other.domain.com", і Ваш обліковий запис дозволяє Вам обслуговувати сторінки з каталогу ~/myhome, Ви повинні викликати функцію setcookie() таким чином:

Setcookie("name", $value, time()+3600, "~/myhome", " .domain.com");

Приклад 7. Лічильник у куки за допомогою setcookie()

Про куки додатково

Всім привіт!

Я знову в строю! Останнім часом зміни в житті змушують частенько віддалятися від блогу, але я тут і нікуди не йду! Незабаром буде низка дуже корисних і пізнавальних уроків із заробітку! НЕ пропустіть! А поки що я розповім про те, як у php працювати з куками. Як можна легко створити, видалити або оновити cookie в php?

У наступних статтях ми розглянемо роботу cookie у WordPress. А поки що для загального розвитку розберемо саме поняття кукі.

Не буду писати банальщину про те, що куки це в перекладі печінки і таке інше. Інформація ця, на мою думку, абсолютно марна. Скажу інакше, куки – це якась інформація, яка зберігається у Вашому браузері.

Наприклад, Ви вирішили проголосувати в опитуванні. Далі Ви ще раз захотіли проголосувати, але замість ухвалення голосу вилазить повідомлення: "Ви вже голосували". Здавалося б, на сайті ми не реєструвалися, звідки інформація, що ми вже голосували?

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

Як створити куки в php?

Створюються куки в php завдяки функції setcookie. Ця функція приймає наступні параметри:

setcookie ("Ім'я", "Значення", "Термін", "Шлях", "Домен", "Захист");

  • Обов'язковий тут лише один параметр – "Ім'я".
  • "Значення" вказується значення cookie, як уже всі здогадалися.
  • Термін – скільки часу куки працюватимуть? Після закінчення терміну дії кука буде видалена автоматично. Термін може бути безстроковим, якщо ми не вказуємо значення "термін". Термін встановлюється лише за секунди!
  • Шлях - з якого каталогу буде доступна кука. (зазвичай не вказується і доступна з усіх каталогів)
  • Домен - Домен автоматично вказується. У випадку, якщо доступ до cookie потрібно отримувати і на піддоменах, можна вказати ".сайт". У такому разі кука буде доступна на всіх сайтах з адресами: name.сайт
  • Захист - якщо написано TRUE, тоді куки передаються шифрованим з'єднанням (ssl).

Створення куки на PHP

Тепер якщо подивитися в браузері (я використовую mozilla), то побачимо куку в дії:

Як бачите, куки встановилися рівно на 1 день, з потрібним нам, назвою, і потрібним значенням.

Як оновити куки php?

Припустимо, нам потрібно оновити значення cookie. Тобто. назва буде те саме, але значення або термін дії треба змінити. У такому разі нам знову ж таки знадобиться функція setcookie.

Операція нічим не відрізняється від операції створення куків. Так само пишемо схожий код, але зі зміненими даними:

Тепер подивимося, що міститься у браузері:

Як бачите, оновлення cookie відбулося успішно!

Як прочитати\отримати куку php?

Те, що в браузері відображається кука, це добре, але ж ми її створюємо, щоб згодом використовувати в наших скриптах. То як же отримати куку? Для цього існує глобальний масив кук $_COOKIE, в якому знаходяться взагалі всі створені куки. Звернутися до них легко – достатньо знати ім'я.

Тепер кука втече!

Одне важливе зауваження, про яке ніхто не каже. Коли я тільки-но починав вивчати програмування, я видалив куку цим способом. Зайшов у браузер – кука залишилася. Перерив усі форуми – така проблема часто зустрічається, але всі відповідають мовляв: "Хм, не знаю, у мене працює". А причина ось у чому - кука видаляється, але не з файлів користувача. Там вона лишається. І відкриваючи браузер, Ви її бачите, але якщо ми звернемося до неї за допомогою $_COOKIE["wpguru"], то в результаті буде 0. Ось так можна легко перевірити, чи видалена кука.

На цьому у мене все, найближчим часом виходитимуть ще статті. Швидше за все я опишу в наступній статті, які плани чекають на блог, і докладно розповім про серію статей про заробіток. Все буде онлайн-режимі, тобто. я заробляю і пишу статтю. А не просто теорію мовлю.

Тож чекайте.

До зустрічі!

У сьогоднішньому уроці ми поговоримо про роботу з cookie у PHP. Почнемо з того, що це таке, для чого це потрібно і чому воно взагалі з'явилося.

Для чого потрібні cookie

Як ми з вами вже знаємо, у PHP ми можемо працювати з GET-і POST-запитами. Вони дозволяють нам передавати серверу дані, щоб якось вплинути на роботу коду. Ми можемо передати скрипту логін та пароль, він їх перевірить та дозволить нам доступ до будь-якої інформації. Однак, це не дозволить створити сесію між нами та сервером. Тобто сервер не може нас «запам'ятати», і щоразу, як ми хочемо сказати, що це ми, доведеться надсилати окремий новий запит з логіном та паролем.

Як рішення вигадали cookie. Це такі записи з типом ключ-значення, типу масиву в PHP, тільки вони зберігаються в браузері у користувача сайту. Для кожного веб-сайту cookie зберігаються окремо. Щоразу, коли користувач звертається із запитом на сайт, браузер перевіряє наявність цих записів для даного сайту. І якщо вони є, то він надсилає їх у заголовку кожного запиту до цього сайту.

Звідки беруться cookie

Cookie створюються в браузері на прохання сервера. У якийсь момент ми вирішуємо, що потрібно у браузері відвідувача створити cookie з якимось значенням. Для цього потрібно, щоб сервер передав у відповіді клієнту спеціальний заголовок, в якому зазначено, який запис потрібно створити у браузері для даного сайту.

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

Тобто сервер приблизно говорить: "Гей, браузер, створи запис для мене з ключем "login" і значенням "admin", і ще одну з ключем "password" і значенням "123"". Після цього браузер за будь-якого запиту до сервера починає надсилати додаткові дані типу:

Login: admin password: 123

Після цього в інших місцях сайту, де потрібна авторизація тепер можна буде перевірити ці дані з cookie, не змушуючи користувача заповнювати форму заново. І якщо вони є вірними логіном та паролем, то давати користувачеві доступ до чогось.

Про час життя

При цьому cookie має TTL (Time To Live – час життя). Тобто ці записи можуть бути тимчасовими. Цей час життя також вказується сервером під час встановлення cookie у браузер. Завдяки цьому можна зробити так, щоб сесія тривала півгодини. А після цього часу користувачеві треба буде авторизуватись знову. Напевно, ви помічали це в дії на багатьох сайтах.

Як працювати з cookie в PHP

Отже, ми загалом розібралися з тим, як працюють cookie. Давайте подивимося, як з ними можна працювати в мові PHP.

Давайте створимо у нашому проекті файл із ім'ям viewCookies.php. Помістимо до нього наступний код.

Як ви вже мали здогадатися, $_COOKIE- це ще один глобальний масив у PHP, аналогічно масивам $_GETі $_POST. Тільки в ньому зберігаються всі cookie, які були надіслані браузером у рамках поточного запиту.

Давайте подивимося на роботу даного скрипта, відкривши у браузері сторінку: http://myproject.loc/viewCookies.php

Як бачимо, зараз цей масив порожній. Давайте ж його наповнимо:) Для цього нам потрібно встановити яку-небудь cookie в браузер. У PHP для цього використовується функція setcookie($name, $value, $ttl, $path)

Передані параметри:

  • $name – назва cookie
  • $ value – її значення
  • $ttl – час життя. Якщо вказати 0, то cookie буде встановлена ​​назавжди (поки її не видалять).
  • $ path - шлях в адресному рядку. Якщо задати "/", cookie будуть доступні з усіх каталогів сайту. Наприклад, і http://myproject.loc/ і http://myproject.loc/posts/ . Якщо задати "/posts/", cookie будуть доступні лише з директорії http://myproject.loc/posts/ та всіх її піддиректорій (наприклад, http://myproject.loc/posts/new/). За промовчанням значенням є поточна директорія, в якій встановлюється cookie. Якщо ми хочемо, щоб cookie була доступна на всьому сайті, потрібно встановлювати це значення в "/".

Є ще кілька параметрів, про які ви можете прочитати в офіційній документації.

А тепер давайте спробуємо цю функцію у справі. Створимо файл setCookies.php і запишемо до нього наступний код:

Після цього перейдемо за адресою http://myproject.loc/setCookies.php, де побачимо порожню сторінку. Як ми вже говорили, робота з cookie не видно користувачеві.

Однак, цю роботу завжди можна побачити в консолі Google Chrome. Давайте відкриємо її (натисканням F12), перейдемо у вкладку Network, оновимо сторінку у браузері та знайдемо її у списку завантажених даних (вона там одна).

Натиснемо на цей запис і у вікні, що відкрилося праворуч, виберемо вкладку Headers. Тут, у секції Response Headers, ми можемо бачити заголовок Set-Cookie із зазначеними нами даними.

Таким чином, cookie були успішно встановлені у браузері. Давайте тепер перейдемо на нашу сторінку, що виводить масив $_COOKIE - http://myproject.loc/viewCookies.php

Як бачимо, тепер сервер передаються cookie, раніше встановлені у браузері. Побачити їх можна і у запиті, подивившись у консолі розробника секцію Request Headers.

Якщо вам потрібно подивитися всі cookie, які є в браузері для даного сайту, можна подивитися їх у тій же консолі розробника Google Chrome. Для цього перейдемо у вкладку Application, виберемо в лівому списку пункт Cookies, а всередині наш сайт.

Усі cookie будуть представлені у вигляді зручного списку.

Що ще потрібно знати про cookie

І на закінчення даного уроку потрібно додати, що cookie встановлюються за допомогою заголовка у відповіді сервера за протоколом HTTP. Протокол HTTP влаштований таким чином, що заголовок повинен завжди йти перед даними і ніяк інакше. Таким чином, функція setcookie і будь-які інші функції PHP, що змінюють заголовок в HTTP-відповіді, повинні викликатися до будь-якого виведення даних.

Ви можете спочатку встановити cookie, а потім вивести текст.

Все чудово відпрацює.

Але не можна вивести текст (тело HTTP-відповіді), а потім намагатися встановити cookie.

Як бачимо, це призведе до помилки. Так улаштований протокол HTTP. Спочатку – заголовок, потім – тіло. Тільки так і не інакше.

Встановлення кількох cookie

Нема нічого простішого, ніж встановити кілька cookie. Для цього потрібно просто кілька разів викликати функцію setcookie.

Вони успішно будуть передані клієнту.

Приклад повноцінної взаємодії з користувачем через cookie ми розглянемо на наступному уроці. А поки що – за хатинку.

Loading...Loading...