Что такое cookie?
Файл cookie - это небольшой файл с максимальным размером 4 КБ, который веб-сервер хранит на клиентском компьютере.
После установки cookie все последующие запросы страниц возвращают имя и значение cookie.
Файл cookie можно прочитать только из домена, из которого он был выпущен. Например, файл cookie, установленный с использованием домена www.guru99.com, не может быть прочитан из домена карьеры.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_path]» не является обязательным; его можно использовать для установки пути cookie на сервере. Косая черта «/» означает, что файл cookie будет доступен для всего домена. Подкаталоги ограничивают доступ файлов cookie к поддомену.
- «[Домен]» является необязательным, его можно использовать для определения иерархии доступа к файлам cookie, например, www.cookiedomain.com означает весь домен, в то время как www.sub.cookiedomain.com ограничивает доступ файлов cookie к www.sub.cookiedomain.com и его дочерним доменам. домены. Обратите внимание, что возможно иметь поддомен поддомена, если общее количество символов не превышает 253 символов.
- «[Secure]» не является обязательным, по умолчанию - false. Он используется для определения того, отправляется ли файл cookie через https, если для него установлено значение true, или http, если для него установлено значение false.
- «[Httponly]» не является обязательным. Если установлено значение true, то только языки сценариев на стороне клиента, то есть JavaScript, не могут получить к ним доступ.
Примечание: функция php set cookie должна выполняться перед открывающим тегом 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-тегов.