Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабораторныйПрактикум_2.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
578 Кб
Скачать
☆

Модуль 7. Cookies и сессии php Работа с cookies (печеньками)

Cookie – это текстовые строки, которое могут быть сохранены на компьютере клиента и затем передаются веб-серверу при каждом обращении к нему. Например, при авторизации на сайте и установки галочки «запомнить меня», вас запоминают в куках браузера. При повторном добавлении комментария, такие параметры как имя, электронный адрес уже введены – это тоже работа cookies.

Управляет куками удаленный сервер, то есть он может их читать, изменять, добавлять. Для хранения используется компьютер пользователя. Запрашивая страницу, браузер отправляет веб-серверу короткий текст с HTTP-запросом. Например, для доступа к странице http://www.example.org/index.html, браузер отправляет на сервер www.example.org следующий запрос:

GET /index.html HTTP/1.1

Host: www.example.org

Сервер отвечает, отправляя запрашиваемую страницу вместе с текстом, содержащим HTTP-ответ. Там может содержаться указание браузеру сохранить куки:

HTTP/1.1 200 OK

Content-type: text/html

Set-Cookie: name=value

(содержимое страницы)

Строка Set-cookie отправляется лишь тогда, когда сервер желает, чтобы браузер сохранил куки. В этом случае, если куки поддерживаются браузерами их приём включён, браузер запоминает строку name=value (имя = значение) и отправляет её обратно серверу с каждым последующим запросом. Например, при запросе страницы http://www.example.org/spec.html браузер пошлёт серверу www.example.org следующий

запрос:

GET /spec.html HTTP/1.1

Host: www.example.org

Cookie: name=value

Accept: */*

Этот запрос отличается от первого запроса тем, что содержит строку, которую сервер отправил браузеру ранее. Таким образом, сервер узнает, что этот запрос связан с

предыдущим. Сервер отвечает, отправляя запрашиваемую страницу и, возможно, добавив

новые куки.

Для установки значения cookie в PHP используется функция setcookie:

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

Параметры функции:

  • name – имя куки (только латинские буквы, цифры, символ подчеркивания и дефис)

  • value – значение куки

  • expire – срок действия куки. Если задан, то кука удаляется по истечению этого строка, в противном случае – после закрытия окна браузера. Указывается в формате timestamp. Timespamp - это число секунд, прошедших с 00:00:00 1 января, 1970 года.

  • path – путь, который определяет, в какой части домена может использоваться данный файл (/ - означает доступность в пределах всего домена).

  • domain – домен, для которого доступен cookie

  • secure - указание, что данные cookie должны передаваться только через безопасное соединение HTTPS.

Cookie – часть заголовка HTTP-запроса, который отправляется браузеру, поэтому их значения должны быть установлены до начала формирования HTML-кода, это означает, что вызов setcookie должен быть расположен до любых HTML-тегов и до любого оператора echo.

Сразу после установки, значение куки не будет доступно скрипту до тех пор, пока страница не будет перезагружена. Это происходит потому, что куки хранятся на компьютере пользователя и отправляются на веб-сервер браузером при запросе очередной страницы.

Для получения доступа к cookie используется суперглобальный массив $_COOKIE.

Перед использованием cookie рекомендуется удостовериться в ее существовании с использованием функции isset.

Пример: массивы и cookie:

Для удаления куки необходимо вызвать функцию setcookie с пустым параметром value. Поскольку куки удаляется браузером, для их гарантированного удаления рекомендуется задавать истекший период действия куки.