Приднестровская поддержка XOOPS
Web-браузеры позволяют сохранять небольшой объем информации в специальном текстовом файле на компьютере пользователя. Такая информация называется cookies. Возможность использования cookies можно отключить в настройках Web-браузера.
Для записи cookies используется функция setcookie(). Функция имеет следующий формат:
setcookie(<Имя>, <Значение>, [<Время жизни>], [<Путь>], [<Домен>],
[<Способ передачи>]);
Большинство параметров не являются обязательными. Если не указано <Время жизни> cookies, то оно будет удалено сразу после закрытия Web-браузера:
setcookie("var1", "12");
setcookie("var2", "15", time() + 86400);
Последнее выражение устанавливает cookies на один день. (1)
Считывание cookies производится следующим образом:
echo $_COOKIE['var1'];
echo $_COOKIE['var2'];
Все установленные cookies доступны через переменную окружения $_SERVER['HTTP_COOKIE']:
$cookies = $_SERVER['HTTP_COOKIE'];
Переменная $cookies будет содержать строку, в которой перечислены все установленные пары имя=значение через точку с запятой.
"var1=12; var2=15"
Для удаления cookies следует установить cookies с прошедшей датой.
В качестве примера использования cookies создадим счетчик посещений (листинг 40).
<?php
if (!isset($_COOKIE['id_count'])) $id_count = 0;
else $id_count = $_COOKIE['id_count'];
$id_count++;
setcookie('id_count', $id_count, 0x6FFFFFFF);
echo 'Вы посетили ресурс ' . $id_count . ' раз';
?>
Если в cookies сохраняется строка, состоящая из русских букв, то ее следует закодировать, например, с помощью функции urlencode(). Раскодировать строку можно с помощью функции urldecode().
Сохранить массив в cookies позволяет функция serialize(). Чтобы получить обратно массив, следует использовать функцию unserialize().
Так как функция setcookie() устанавливает заголовки ответа сервера, то перед функцией не должно быть никаких операторов вывода. Даже пустая строка перед открывающим PHP-дескриптором (<?php) вызовет ошибку. Кроме того, при использовании кодировки UTF-8 файл должен быть в кодировке UTF-8 без BOM.
Отправитель | Нити |
---|
6 пользователь(ей) активно (3 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 6 далее... |