PHP занятие 9. Cookie (Куки)

На уроке рассмотрены методы передачи данных форм GET и POST

Cookie: создание и параметры

Существуют переменные сессионные (временные) и постоянные. Временные существуют пока открыт браузер, постоянные — пока не истечет срок годности cookie.
Работу сервера и браузера с cookie файлами демонстрирует следующая иллюстрация:

Браузер, посылая запрос на конкретный домен, смотрит, есть ли у него куки для этого домена
Браузер, посылая запрос на конкретный домен, смотрит, есть ли у него куки для этого домена

Пример cookie
Пример cookie

 Параметры cookie php
Рис. 9.1. Параметры cookie

Расшифруем параметры cookie в порядке их следования:

  1. Имя куки: только латинские буквы, цифры, символ подчеркивания и дефис
  2. Значение параметра
  3. Дата истечения срока годности
  4. Путь, который определяет, в каком месте домена может использоваться файл куки
  5. Домен
  6. Указание, что данные куки должны передаваться посредством безопасного соединения HTTPS

Пример установки cookie php
Рис. 9.2. Пример установки cookie

Проверка передачи cookie php
Рис. 9.3. Проверка передачи cookie

Задание 9_1: Создать cookie, установить значение – ваше имя. Написать код с проверкой передачи и выводом данного cookie на экран. Добавить текстовое поле для вывода значения cookie в нем.
Задание 9_2:
Выводите на экран количество посещений страницы, используя cookie.
Предлагаемый алгоритм (возможен другой вариант выполнения):

  1. Установите переменную для счетчика ($counter), обнулив ее.
  2. Проверьте, установлен ли уже cookie, если да — то присвойте переменной $counter значение cookie (см. пункт 3).
  3. Добавьте cookie для хранения количества посещений.
  4. Приращивайте счетчик.
  5. Проверьте, установлен ли уже cookie, если да — то выводите значение cookie.

Помимо стандартного создания cookie

setcookie("TestCookie", "Ivan", time()+300);

существует возможность создания массива из разных cookie:

Создание массива из разных cookie
Рис. 9.3. Создание массива из разных cookie

Пример: Создать два cookie для хранения имени и возраста. Представить cookie, как массив из двух элементов

Выполнение:

1
2
3
4
5
6
7
while(list($name,$value)=each($_COOKIE)){
	$array[0]="Иван";
	$array[1]="23";
}
foreach($array as $val){
	echo "значение=".$val."<br>";
}

Результат:

значение=Иван
значение=23

Данное задание также можно выполнить при помощи ассоциативного массива:
Выполнение:

1
2
3
4
5
6
while(list($name,$value)=each($_COOKIE)){
	$array["Иван"]=23;
}
foreach($array as $k=>$val){
  echo "индекс= ".$k." значение=".$val."<br>";
}

Результат:

значение=Иван
значение=23
Задание:
Создать массив данных для хранения паролей. Значения паролей сохранить в cookie. В html-код добавить текстовые поля, выводить в них значения паролей.

Cookie: удаление

Удаление cookie php
Рис. 9.4. Удаление cookie
Задание 9_3: удалить cookie из задания 9_1 и повторно обновить браузер.
Лабораторная работа 9_1:
Создать файл cookie.php.
Задача:

  • При первом запросе страницы cookie.php пользователем, выводить фразу «Добро пожаловать!»
  • При повторных запросах:

  • Выводить количество посещений. Например: «Вы зашли на страницу 5 раз»
  • Указывать дату и время последнего посещения. Например: «Последнее посещение: 20-08-2009 16:34:45»
  • date('d/m/Y   H:i:s')

    Алгоритм выполнения:

    1. Инициализируйте переменную для подсчета количества посещений
    2. Если соответствующие данные передавались через куки, сохраняйте их в эту
      переменную
    3. Нарастите счетчик посещений
    4. Инициализируйте переменную для хранения значения последнего посещения
      страницы
    5. Если соответствующие данные передавались из куки, отфильтруйте их и сохраните в эту переменную
    6. Установите соответствующие куки (для счетчика и для даты)
    7. Выводите информацию о количестве посещений и дате последнего посещения

    Результат:
    пример работы с куки

    Заголовки. Функция header: переадресация, установка кодировки и др

    редирект php
    установка кодировки php

    Задание 9_4:

    • Создать файл header.php с заголовком второго уровня «Здравствуйте!». При помощи директивы header отображать данную страницу в текстовом формате.
    • Использовать на этой же странице директиву для перехода через 5 секунд на какую-либо другую страницу.

    Хэш-функция (шифрование)

    md5(string) — функция шифрования для хранения зашифрованных (хэшированных) данных в базе данных

    хэш функция php