Применение cookie

Лабораторная работа №16

Применение cookie и сеансов в PHP

Цель работы

1. Изучить механизм работы c cookie-файлами.

2. Изучить механизм работы сеансов и использования сеансовых переменных.

3. Применить полученные знания для написания сценариев на PHP.

Задание для подготовки к работе

Изучить лекционный материал и теоретический материал настоящей лабораторной работы.

Порядок выполнения работы

1. Изучить синтаксис функций для записи и удаления cookies, функции для открытия и закрытия сеанса, основы работы с сеансовыми переменными.

2. Выполнить примеры.

3. Выполнить индивидуальное задание по варианту.

4. Составить электронный отчет о проделанной работе.

Содержание отчета

1. Титульный лист.

2. Теоретическая часть.

Обязательно указать номер варианта, текст индивидуального задания, тестовые данные, блок-схему реализации алгоритма решения задачи.

3. Копии экрана, иллюстрирующие работу сценариев PHP.

4. Код html-страниц, выполненных согласно варианту.

Теоретический материал

Применение cookie

Этот механизм первоначально задумывался как основной для обеспечения обмена данными между различными страницами. Однако, следует помнить, что данные cookie сохраняются на компьютере клиента. Пользователь браузера может управлять настройками механизма cookie вплоть до полного его отключения (многие так и поступают). Это обстоятельство ограничивает использование cookie в разработках серьезных Web-приложений. Так, если приложение ориентировано на использование cookie, а пользователь отключил их, то приложение может работать некорректно. Например, в некоторых гостевых книгах добавление записей пользователей возможно, только если механизм cookie включен.

|в РНР установка значений cookie-записей производится с помощью встроенной функции setcookie(), а их чтение — с помощью суперглобального массива $_COOKIE.

Функция setcookie(name, value, expires, path, domain, secur) примает следующие параметры:

· name — строка, содержащая имя cookie-записи (обязательный параметр)|;

· value — строка, содержащая значение cookie;

· expires — срок хранения cookie-записи как количество секунд; если отсутствует, то после завершения работы браузера cookie-запись удаляется; время жизни следует задавать с помощью функции time() или mktime(). Например, если необходимо установить время жизни cookie-записи 2 часа, начиная от момента ее создания, то значение данных параметра следует задать как time()+2*60*60;

· path — строка, содержащая путь cookie-записи;

· domain — строка, содержащая домен нужной cookie-записи;

· secure — логическое значение (true или false), определяющее необходимость использования безопасного HTTP-соединения.

Для применения функции setcookie() обязательным является только первый параметр — имя cookie-записи. Для создания cookie-записи достаточно указать непустое значение второго параметра.

Для удаления cookie-записи достаточно установить для нее пустое значение:

setcookie ("mycookie");

setcookie ("mycookie", "");

Примечание: Функция setcookie() имеет такую же особенность, что и header(): ее применение должно предшествовать всему, что отправляется браузеру. Так, функция нельзя использовать после текста, HTML-кода и операторов echo.

Данные cookie недоступны из РНР-сценария на той же странице, где они были созданы. Чтобы получить к ним доступ с помощью суперглобального массива $_COOKIE, следует перейти на другую страницу либо перезагрузить текущую страницу. Это не обременительно, поскольку cookie для того и существуют, чтобы сохранять данные, доступные для разных страниц. Тем не менее, доступ к cookie все-таки возможен и на той же странице, на которой они были созданы, но из клиентского сценария.

Для проверки возможности применения механизма cookie убедитесь, что в вашем браузере он не отключен, и создайте два файла — setcookie.php и readcookie.php, как в листингах 1 и 2 соответственно. Затем загрузите в браузер файл setcookie.php, который установит cookie-запись и выполняя

переход к файлу readcookie.php. Последний прочитает cookie-запись и отобразит ее значение.

Листинг 1:

<?php

setcookie("test","Привет!"); // установка cookie-записи с именем test

header("Location: readcookie.php"); // переход

?>

Листинг 2:

<?php

echo "Значение cookie-записи с именем test: {$_COOKIE['test']}";

?>

. Применение сеансов РНР

Сеанс (сессия, session) в РНР — механизм, который позволяет обеспечить доступность данных, созданных на различных серверных страницах одного сайта, для других страниц в этом же сайте. Технология сеансов открывает возможности и преодолевает ограничения cookie по обмену данными между Web-страницами. Сеанс создается и закрывается. В интервале времени между этими событиями все РНР-сценарии, расположенные в разных файлах и подключенные к данному сеансу, имеют доступ к переменным, созданным в других сценариях этого же сайта.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: