Печенье в PHP
Что такое печенье
Файлы cookie используются для хранения информации веб-страницы в удаленном браузере, поэтому, когда один и тот же пользователь возвращается на эту страницу, эту информацию можно получить из самого браузера.
В этом уроке мы обсудим, как использовать Cookies в PHP. В этом руководстве есть несколько примеров, которые помогут вам понять концепцию и использование cookie.
Использование печенья
Файлы cookie часто используются для выполнения следующих задач:
- Управление сеансами: файлы cookie широко используются для управления сеансами пользователей. Например, когда вы используете онлайн-корзину, вы продолжаете добавлять товары в корзину и, наконец, когда вы оформляете заказ, все эти товары добавляются в список купленных вами товаров. Это может быть достигнуто с помощью куки.
- Идентификация пользователя . Когда пользователь заходит на веб-страницу с помощью файлов cookie, его можно запомнить. И позже, в зависимости от схемы поиска / посещения пользователя, обслуживается контент, который пользователь, вероятно, посетит. Хорошим примером этого является «Ретаргетинг». Концепция, используемая в онлайн-маркетинге, где в зависимости от выбора пользователем контента размещаются рекламные объявления о соответствующем продукте, который пользователь может купить.
- Отслеживание / Аналитика : Cookies используются для отслеживания пользователя. Который, в свою очередь, используется для анализа и обслуживания различных видов данных, представляющих большую ценность, таких как местоположение, технологии (например, браузер, операционная система), где пользователь посещал, сколько времени он оставался на различных страницах и т. Д.
Как создать cookie в PHP
PHP имеет функцию setcookie()
для отправки куки. Мы обсудим эту функцию подробно сейчас.
Использование:
setcookie(name, value, expire, path, domain, secure, httponly)
Параметры:
setcookie () имеет несколько параметров. Следующая таблица обсуждает те.
параметр | Описание | Какой тип данных |
---|---|---|
название | Название куки. | строка |
значение | Значение файла cookie, хранящегося на клиентском компьютере. | строка |
истекать | Метка времени Unix, то есть количество секунд с 1 января 1970 года (называется эпохой Unix). | целое число |
дорожка | Путь к серверу, по которому будет доступен файл cookie. | строка |
домен | Для какого домена доступен файл cookie. | строка |
безопасный | Если установлено значение true, файл cookie доступен только через безопасное соединение. | логический |
HttpOnly | Если установлено значение true, файл cookie доступен только по протоколу HTTP. Языки сценариев, такие как JavaScript, не смогут получить доступ к cookie. | логический |
setcookie()
возвращает логическое значение.
Пример:
В следующем примере показано, как создать cookie в PHP. Сначала код, а потом немного объяснения.
<?php
$cookie_value = "w3resource tutorials";
setcookie("w3resource", $cookie_value, time()+3600, "/home/your_usename/", "example.com", 1, 1);
if (isset($_COOKIE['cookie']))
echo $_COOKIE["w3resource"];
?>
Итак, что делает код выше? Первый параметр задает имя файла cookie как «w3resource», второй параметр задает значение как «w3resource tutorials», третий параметр указывает, что срок действия файла cookie истечет через 3600 секунд (обратите внимание, как он был объявлен, мы используем time (), а затем добавьте количество секунд, которое мы хотим, чтобы после истечения срока действия куки-файла), четвертый параметр устанавливает путь на сервере '/ home / your_name', где your_name может быть именем пользователя, поэтому он направляет домашний каталог пользователя для пятого и шестого параметра установлено значение 1, т. е. значение true, поэтому файл cookie доступен только для защищенных соединений и доступен только по протоколу HTTP.
echo $_COOKIE["w3resource"];
просто печатает значение cookie. Таким образом, вы можете получить значение cookie .
Выход:
w3resource руководства
Как создать cookie без кодирования значения cookie
setcookie()
отправляет cookie, кодируя значение cookie. Если вы хотите отправить куки-файл без кодирования значения куки-файла, вам нужно использовать setrawcookie()
.
Эта функция имеет все параметры, которые имеет setcookie (), и возвращаемое значение также является логическим.
PHP $ _COOKIE автоглобальный
Если куки успешно отправлены вам с клиента, они доступны в $ _COOKIE, который автоматически является глобальным в PHP, если директива variable_order в php.ini установлена в C.
Следующий код показывает, как использовать $ _COOKIE.
<?php
$cookie_value = "w3resource tutorials";
setcookie("w3resource", $cookie_value, time()+3600, "/home/your_usename/", "example.com", 1, 1);
echo 'Hi ' . htmlspecialchars($_COOKIE["w3resource"]);
?>
Если вы хотите получить все куки, вы можете использовать следующую команду
<?php
print_r($_COOKIE);
?>
Заголовки уже отправили проблему из-за куки
PHP Cookies являются частью заголовка HTTP. Поэтому в сценарии PHP, если он не задан до того, как в браузер будет отправлен какой-либо другой вывод, вы получите предупреждение типа "... заголовки уже отправлены ....".
Чтобы избавиться от проблемы, вы можете использовать «Функции буферизации вывода». Следующий код показывает, как добавить функцию буферизации вывода.
<?php
ob_start(); //at the begining of the php script
//your code goes here
//add these two lines at the end of the script
$stuff = ob_get_clean();
echo $stuff;
?>
Как удалить куки
Чтобы удалить значение cookie, вы можете установить время истечения срока действия cookie в прошлом. В следующем фрагменте кода время истечения срока действия cookie устанавливается за час до этого.
<?php
$cookie_value ="w3resource tutorials";
setcookie("w3resource", $cookie_value, time()-3600, "/home/your_usename/", "example.com", 1, 1);
?>
Javascript cookies против php cookies
Это может сбить вас с толку, если вы только начинаете заниматься веб-программированием. Но на практике Cookies определяются RFC 2965 . Это стандарт, в котором может использоваться любой язык программирования. Это не имеет ничего общего с PHP против JavaScript. В PHP, как мы видели в первом примере этого учебника, куки могут быть установлены таким образом, что они не доступны для клиентского JavaScript, но это только функция программирования.
Cookie против сессий
И куки, и сеансы используются для хранения постоянных данных. Но есть различия наверняка.
Сессии хранятся на стороне сервера. Файлы cookie находятся на стороне клиента.
Сессии закрываются, когда пользователь закрывает свой браузер. Для файлов cookie вы можете установить время, когда он истечет.
Сессии безопасны, что куки. Поскольку, поскольку они хранятся на компьютере клиента, существуют способы изменения файлов cookie или манипулирования ими.
Надеюсь, этот урок о PHP куки полезен для вас. Дайте нам знать, если у вас есть вопросы или предложения.
Предыдущий: PHP Загрузка файла
Далее: XForms
Новый контент: Composer: менеджер зависимостей для PHP , R программирования