110 lines
4.1 KiB
Markdown
110 lines
4.1 KiB
Markdown
|
---
|
|||
|
title: PHP Cookies
|
|||
|
localeTitle: PHP-файлы cookie
|
|||
|
---
|
|||
|
# PHP-куки
|
|||
|
|
|||
|
## Что такое Cookie?
|
|||
|
|
|||
|
Файл cookie часто используется для идентификации пользователя. Это небольшой файл, который сервер встраивает в компьютер пользователя. Каждый раз, когда тот же компьютер запрашивает страницу с браузером, он отправляет cookie тоже.
|
|||
|
Куки-файлы были разработаны, чтобы быть надежным механизмом для сохранения информации о состоянии или записи активности пользователя.
|
|||
|
Они также могут использоваться для запоминания произвольной информации, которую пользователь ранее вводил в поля формы, такие как имена, адреса, пароли и т. Д.
|
|||
|
|
|||
|
## Создание файлов cookie с PHP
|
|||
|
|
|||
|
С помощью PHP вы можете создавать и извлекать значения файлов cookie. Файл 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 () должна отображаться **перед** тег.
|
|||
|
|
|||
|
Вывод:
|
|||
|
Cookie 'user' установлен!
|
|||
|
Значение: John Doe
|
|||
|
|
|||
|
## PHP Изменить значение cookie
|
|||
|
|
|||
|
Чтобы изменить файл cookie, просто установите значение снова с помощью функции setcookie ():
|
|||
|
|
|||
|
**Пример:**
|
|||
|
```
|
|||
|
<?php
|
|||
|
$cookie_name = "user";
|
|||
|
$cookie_value = "Jane 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 'user' установлен!
|
|||
|
Значение: Алекс Портер
|
|||
|
|
|||
|
## PHP Удалить файл cookie
|
|||
|
|
|||
|
Чтобы удалить файл cookie, используйте функцию setcookie () с датой истечения в прошлом:
|
|||
|
|
|||
|
**Пример:**
|
|||
|
```
|
|||
|
<?php
|
|||
|
// set the expiration date to one hour ago
|
|||
|
setcookie("user", "", time() - 3600);
|
|||
|
?>
|
|||
|
<html>
|
|||
|
<body>
|
|||
|
|
|||
|
<?php
|
|||
|
echo "Cookie 'user' is deleted.";
|
|||
|
?>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
```
|
|||
|
|
|||
|
Вывод:
|
|||
|
Пользователь cookie пользователя cookie удален.
|