Сейчас мы с вами реализуем класс-оболочку для работы с куки. Как вы должны уже знать, работа с куками в PHP реализована не очень однородным образом: чтобы установить куку мы используем одну функцию, а чтобы прочитать - другую.
Давайте сделаем свой набор методов для работы с куками, оформив этот набор в виде следующего класса:
<?php
class CookieShell
{
public function set($name, $value, $time)
{
// устанавливает куки
// $time задает время в сек, через сколько кука умрет
}
public function get($name)
{
// получает куки
}
public function del($name)
{
// удаляет куки
}
public function exists($name)
{
// проверяет наличие куки
}
}
?>
Давайте посмотрим примеры того, как должен работать наш класс:
<?php
$csh = new CookieShell;
$csh->set('test', '123', 3600 * 24);
echo $csh->get('test'); // выведет 123
?>
<?php
$csh = new CookieShell;
$csh->set('test', '123', 3600 * 24);
$csh->del('test');
echo $csh->get('test'); // выведет null
?>
Некоторые советы
Работа с куками на чистом PHP кошмарна. Если
вы установите куку и попытаетесь ее сразу
прочитать через $_COOKIE
, то ничего
не получится:
<?php
setcookie('name', 'value', time() + 3600);
var_dump($_COOKIE['name']); // выведет null
?>
Дело в том, что установленная кука будет доступна только после обновления страницы! Но чаще всего она нам нужна сразу, после установки.
Что ж, используем хитрый прием:
<?php
setcookie('name', 'value', time() + 3600);
$_COOKIE['name'] = 'value'; // принудительно запишем в массив
var_dump($_COOKIE['name']); // выведет 'value'
?>
Аналогичным образом я рекомендую поступать и при удалении куки.
Пратические задачи
Реализуйте описанный класс CookieShell
.
Проверьте его работу.
С помощью созданного вами класса реализуйте счетчик обновления страницы, работающий на куках.