Записки юного кодера. CACHE (кэш) и COOKIE (печенье)

Сегодня рассмотрим, как правильно запрещать, разрешать кэширования и задавать его длительность, а также все необходимое для работы с cookie. Пожалуй, начнем с кэширования.

C запретом кэша все довольно просто:

header("Cache-Control: no-store; max-age=0 ");

Кэш разрешен, когда установлено его время жизни. Есть два способа разрешить кэширование:

1) На определенное время:

header("Cache-Control: max-age=3600");
header("Expires: “.date("r", time()+ 3600);

2) На конкретную дату:

header("Expires: “.date("r", mktime(0, 0, 0, 1, 14, 2015)));

 

Теперь рассмотрим cookie. Они создаются командой setcookie(…). Данная функция обладает множеством параметров, но зачастую используются только первые три. При использовании setcookie(…) надо помнить что ее необходимо вызывать еще до того как будут выведены какие-либо другие данные скрипта.

setcookie (name, value, expire, path, domain, secure, httponly);

Параметры:

  • expire - Время, когда срок действия cookie истекает TimeStamp.
  • path - Путь к директории на сервере (видимость). "/", cookie будут доступны во всем домене. Если задать "/foo/", cookie будут доступны только из /foo/ и ниже. По умолчанию значением является текущая директория, в которой cookie устанавливается.
  • domain - Домен, которому доступны cookie. Задание домена "example.com" будут доступны во всех поддоменах высших уровней. RFC 2109, ".example.com".
  • secure - Указывает на то, что значение cookie должно передаваться от клиента по защищенному HTTPS соединению.
  • httponly - Если задано TRUE, cookie будут доступны только через HTTP протокол. То есть cookie в этом случае не будут доступны скриптовым языкам, вроде JavaScript.

 

Cookie в PHP очень удобно считывать при помощи суперглобальной переменной $_COOKIE. $_COOKIE["имя сookie"].

Создадим и выведем значение COOKIE с именем NAME:

setcookie ("NAME", "ALEX");
.........
echo $_COOKIE["NAME"]; // ALEX

Удалять COOKIE можно тремя способами:

setcookie ("NAME");
setcookie ("NAME", "");
setcookie ("NAME", "", time()-3600);

Комментарии (0):

Комментариев, к данной статье, нет

Оставить комментарий:


* Введите Ваше имя


* Введите комментарий

Введите результат с картинки:

* Введите результат

Фото дня на Яndex


Лучистость