Cookie - как записать и как читать

На динамическом сайте не обойтись без временных записей, так называемых "куки"...

 

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

 

 

Рекомендации:

  1. Не храните важные данные в куках, типа паролей
  2. Если ваше приложение не редактирует файлы cookie с помощью JavaScript, включите httponly.
  3. Фильтруйте числа и строки, приходящие из cookie, так как злоумышленники могут подменить данные.

 

 

Смотрите также:

 

Добавить комментарий


Защитный код
Обновить

Вы здесь: Сайтостроение Создание сайта PHP Cookie - как записать и как читать