PHP Cookie / Куки
Що таке cookie / куки?
Файли cookie / куки часто використовуються для ідентифікації користувача. Файл cookie — це невеликий файл, який сервер вбудовує на комп’ютер користувача. Кожного разу, коли той самий комп’ютер запитує сторінку з браузером, він також надсилає файл cookie. За допомогою PHP ви можете як створювати, так і отримувати значення файлів cookie.
Створення файлів cookie за допомогою PHP
Файл cookie створюється за допомогою функції setcookie()
.
Синтаксис
setcookie(name, value, expire, path, domain, secure, httponly);
Потрібний лише обов’язковий параметр name. Усі інші параметри є необов’язковими.
PHP створити/отримати файл cookie
У наступному прикладі створюється файл cookie з назвою "user" зі значенням "John Doe". Термін дії файлу cookie закінчиться через 30 днів (86400 * 30). "/" означає, що файл cookie доступний на всьому вебсайті (в іншому випадку виберіть бажаний каталог).
Потім ми отримуємо значення файлу cookie "user" (за допомогою глобальної змінної $_COOKIE). Ми також використовуємо функцію isset()
, щоб дізнатися, чи встановлено файл cookie:
Приклад
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Примітка: Функція setcookie()
має з’являтися ПЕРЕД <html> тегом.
Примітка: Значення файлу cookie автоматично кодується URL-адресою під час надсилання файлу cookie та автоматично декодується після отримання (щоб запобігти кодуванню URL-адреси, використовуйте натомість setrawcookie()
).
Змінити значення файлу cookie
Щоб змінити файл cookie, просто встановіть (знову) файл cookie за допомогою функції setcookie()
:
Приклад
<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Видалити файл cookie
Щоб видалити файл cookie, скористайтеся функцією setcookie()
із минулим терміном дії:
Приклад
<?php
// встановити термін придатності одну годину тому
setcookie("user", "", time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' видалено.";
?>
</body>
</html>
Перевірте, чи ввімкнено файли cookie
У наступному прикладі створюється невеликий скрипт, який перевіряє, чи ввімкнено файли cookie. Спочатку спробуйте створити тестовий файл cookie за допомогою функції setcookie()
, а потім підрахувати змінну масиву $_COOKIE:
Приклад
<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Файли cookie ввімкнено.";
} else {
echo "Файли cookie вимкнено.";
}
?>
</body>
</html>
Повний довідник з мережі PHP
Щоб отримати повний довідник мережевих функцій, перейдіть до нашого повного Довідника мережі PHP.