Механизм cookie необходим, чтобы хранить на стороне клиента небольшие объемы данных. Например, когда браузер предлагает сохранить логин и пароль для какого-либо сайта, то он их помещает в cookie. Естественно для разных web-сайтов будут созданы отдельные файлы. К примеру, браузер Internet Explorer сохраняет все в текстовых файлах в папке Cookies.
Имя файла будет образовано от имени пользователя, под которым вы зашли в систему и от домена, который вы посетили.
Кстати, я провел один эксперимент. Посетил сайт с голосованием и после того, как я отдал голос за один из вариантов, у меня в папке cookies создался соответствующий файл. При попытке проголосовать снова, мне отказали. Тогда я разозлился и удалил файл из Cookies. И ресурс подумал, что я никогда и не
голосовал. Но это не всегда может сработать. Более продвинутые сайты, насколько я понял, помимо cookie, используют защиту от накрутки по ip. И еще всякие фичи, которые пока я не знаю.
Давайте теперь перейдем непосредственно к практике.
Чтобы создать cookie, надо воспользоваться функцией setcookie(имя_cookie, значение, время жизни). Я сделал небольшой пример, который демонстрирует механизм cookie.
Листинг файла index.php
Листинг файла cookie.php
Сначала идёт проверка. Если файл cookie существует, то на экран выведется “ты уже знаешь как работает механизм cookie”.
Если cookie не существует, то мы её создаем и переходим с запросом в другой скрипт, где вытаскиваем значение cookie.
time()+15 - таким образом, я указал, что cookie будут храниться ровно 15 секунд, после создания. То есть если вы обратитесь к скрипту cookie.php через, скажем 20 секунд, то уже ничего не увидите, так как cookie уже будет удалён из системы.
Если вы хотите удалить вручную, то просто укажите в setcookie() один параметр - имя этой самой куки.
Хочу обратить внимание на одну вещь. Создавать cookie надо перед html текстом, оператором echo и всеми вещам, которые отправляются браузеру. Так как setcookie() посылает браузеру заголовок с именем Set-Cookie. А все заголовки надо передавать до команд вывода.