Cookie - как записать и как читать
- Подробности
- Категория: PHP
- Просмотров: 480
На динамическом сайте не обойтись без временных записей, так называемых "куки"...
Cookie (печеньки) - временные записи в браузере клиента, которые оставляет сервер. Это своеобразный помощник для HTTP - так как он не умеет записывать любую информацию о состоянии. Часто используется для аутентификации браузера.
Это могут быть:
- ник пользователя
- количество товаров и какие товары в корзине
- отслеживание поведения пользователя - трекинг
При этом строковые cookie могут иметь размер 4 кб.
Особенность кук в том, что они пересылаются с каждым ответом браузера клиента и таким образом могут нагружать дополнительно сервер.
Как создать куки на PHP
setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
где:
- setcookie - ключевое слово для создания cookie на PHP
- $name - имя куки
- $value - значение куки с именем $name
- $expires - время жизни
- $path = "" - путь - если будет тут "/" - то такое куки будет отдаваться браузеру на каждой странице сайта, если "/img/" , то cookie будет записываться браузером только при переходе на страницу site.ru/img/
- secure - если 1 или true - то будет записываться только при защищенном соединении.
- $httponly - только при http соединении, если выставить в true, то сценарии типа JS работать не будут.
Пример:
<?php
setcookie("Auth_in_site", "Jorg", time() + 3600, "/", "saitsozdanie.ru", 1);
time()+3600 то есть кука будет действовать 1 час и через час перестанет существовать.
Как читать cookie
Все куки лежат в глобальном супермассиве $_COOKIE , там хранятся все файлы кук.
<?php
print_r($_COOKIE);
читаем отдельную куку
<?php
if(isset($_COOKIE["Auth_in_site"])){
echo "Ваш ник на сайте: " . $_COOKIE["Auth_in_site"];
} else{
echo "Здравствуй Гость!";
}
Как удалить куки
Тут все очень просто, нужно лишь задать время прошедшее, делается это так:
<?php
unset($_COOKIE['Auth_in_site']); // удаляем из глобального суперглобальныймассива
setcookie("Auth_in_site", "", time() - 3600, "/"); // вторым параметром меняем значение на пустоту и третьим параметром указываем прошедшее время с помощью time() - 3600
Рекомендации:
- Не храните важные данные в куках, типа паролей
- Если ваше приложение не редактирует файлы cookie с помощью JavaScript, включите httponly.
- Фильтруйте числа и строки, приходящие из cookie, так как злоумышленники могут подменить данные.
Смотрите также: