
- •«Санкт-Петербургский государственный электротехнический университет «лэти» имени в.И. Ульянова (Ленина)»
- •Описание управляющей сайтом среды Denwer
- •Создание базы данных «Base», ее таблицы и структура
- •1. Qweqwe
- •2.Gbook
- •Создание страниц сайта и самих форм регистрации, авторизации
- •1. Index.Php
- •2. Auth.Php
- •3. Reg.Php
- •4. Register.Php
- •5. Gost.Php
- •6. Add.Php
- •7. Read.Php
- •8. Otkat.Php
- •Index.Php Nick Password Неуспех Успех Gost.Php Name text Страница с сообщениями
- •Использованные в работе операторы и функции языка php и sql и их описание
- •Описание использованного в работе объекта cookies
Описание использованного в работе объекта cookies
Cookies - это текстовые строки, хранящиеся на стороне клиента, и содержащие пары "имя-значение", с которыми связан URL, по которому браузер определяет, нужно ли посылать cookies на сервер.
Использование cookies удобно как для программистов, так и для пользователей. Пользователи выигрывают за счет того, что им не приходится каждый раз заново вводить информацию о себе, а программистам cookies помогают легко и надежно сохранять информацию о пользователях.
Установка cookies производится с помощью функции setcookie:
Эта функция имеет следующие аргументы:
name - имя устанавливаемого cookie;
value - значение, хранящееся в cookie с именем $name;
expire - время в секундах с начала эпохи, по истечение которого текущий cookie становится недействительным;
path - путь, по которому доступен cookie;
domain - домен, из которого доступен cookie;
secure - директива, определяющая, доступен ли cookie не по запросу HTPPS. По умолчанию эта директива имеет значение 0, что означает возможность доступа к cookie по обычному запросу HTTP.
Куки являются частью HTTP header'а, поэтому setcookie() обязана вызываться до отправления любого вывода браузеру. Это то же самое ограничение, что и для header().
По умолчанию cookies устанавливаются на один сеанс работы с броузером, однако можно задать для них более продолжительный срок существования. Это очень удобное и полезное свойство, поскольку в этом случае пользователю не нужно предоставлять свои данные вновь при каждом посещении сайта.
Срок годности устанавливается в секундах относительно начала эпохи. В PHP существуют функции time и mktime для работы с датой и временем, позволяющие переводить текущее время в количество секунд с начала эпохи. Функция time просто переводит текущее системное время в количество секунд, прошедших с начала эпохи:
Синтаксис:
int mktime ([int hour [, int minute [, int second [, int month [, int
day [, int year [, int is_dst]]]]]]])
-1 (По умолчанию. Означает, что свойство не задано);
0 (Временной интервал не приходится на период летнего времени);
1 (Временной интервал приходится на период летнего времени).
Пример, взятый из моей работы – установка куков с именем пароль, значением взятым из таблицы на время до 7 июня 2020 года:
setcookie("password",$_POST['password'],mktime(0,0,0,6,7,2020));
Любая кука, отправляемая с клиента, будет автоматически конвертирована в PHP-переменную точно так же, как GET и POST-данные, в зависимости от переменных конфигурации register_globals и variables_order. Если вы хотите присвоить несколько переменных одной куке, просто добавьте [] в имя куки.
В PHP 4.1.0 и позднее, автоглобальный массив $_COOKIE всегда будет установлен любой кукой, отправленной клиентом.
Удалить cookie просто. Для этого надо вызвать функцию setcookie и передать ей имя того cookie, который подлежит удалению:
setcookie("name");
Другие установленные cookie при этом не удаляются.
Ограничения:
Клиент (браузер) имеет следующие ограничения для cookies:
всего может храниться до 300 значений cookies
каждый cookie не может превышать 4Кбайт
с одного сервера или домена может храниться до 20 значений cookie
Если ограничение 300 или 20 превышается, то удаляется первая по времени запись. При превышении лимита объема в 4Кбайт корректность значения cookie страдает — отрезается кусок записи (с начала этой записи) равный превышению объема.
В случае кэширования документов, например, proxy-сервером, поле Set-cookie HTTP заголовка никогда не кэшируется.