Здравствуйте уважаемые читатели блога live-code.ru.В этой статье я расскажу о cookie в php.HTTP-протокол,лежащий в основе интернета,не сохраняет информацию о состоянии сеанса.Это означает,что любое обращение клиента сервер воспринимает как обращение нового клиента,и даже если клиент формирует запрос для загрузки картинок с текущей страницы,сервером он воспринимается как запрос нового клиента,никак не связанного с тем,который только что загрузил страницу.
Данная схема достаточно хорошо работала для статических страниц,но стала совершенно неприемлемой для динамических.В связи с этим в протокол HTTP были введены механизмы cookie,который в настоящий момент поддерживают все участники итернета: клиенты,прокси-серверы и конечные серверы.
Cookies – это небольшие файлы,сохраняемые просматриваемыми серверами на машине посетителя и содержащие текстовую информацию о настройках пользователя,доступную для считывания создавшему их серверу.
Дословно cookie переводится как “кекс” или “сладкий бонус”,выдаваемый клиентам ресторана,чтобы они запомнили его и посетили вторично.Из-за достаточно сумбурного английского названия для cookie так и не было подобрано адекватного перевода.
Для создание cookie предназначена функция setcookie(),которая имеет следующий синтаксис:
setcookie($name [, $value [, $expire [, $path [, $domain [, $secure]]]]]
Функция setcookie принимает следующие аргументы:
- $name – имя cookie;
- $value – значение,хранящееся в cookie с именем name;
- $expire – время в секундах,прошедшее с 0 часов 00 минут 1 января 1970 года.По истечении этого времени cookie удаляется с машины клиента;
- $path – путь,по которому доступен cookie;
- $domain – домен,из которого доступен cookie;
- $secure – директива,определяющая,доступен ил файл cookie на машине клиента и FALSE – в противном случае.После того как cookie установлен,его значение можно получить на всех страницах Web-приложения,обращаясь к суперглобальному массиву $_COOKIE и используя в качестве ключа имя cookie.
Так как cookie передается в заголовке HTTP-запроса,то вызов функции setcookie() необходимо размещать до начала вывода информации в окно браузера функциями echo(),print() и т.п.,а также до включения в файл HTML-тегов.
Например: Подсчет количества обращений к странице
1 2 3 4 5 6 7 8 9 10 |
<?php // Выставляем уровень обработки ошибок error_reporting(E_ALL & ~ E_NOTICE); // Увеличиваем значение cookie $_COOKIE['counter']++; // Устанавливаем cookie setcookie("counter", $_COOKIE['counter']); // Выводим значение cookie echo "Вы посетили эту страницу {$_COOKIE['counter']} раз"; ?> |