Что такое Cookies, для начинающих

куки

От автора:В этой статье мы рассмотрим что такое cookies (куки) и с чем его едят :). Т.к. протокол HTTP не поддерживает сохранение данных между двумя разными транзакциями, были придуманы сессии и cookies. Это очень упрощает работу, как программистам, так и пользователям. Первым дает возможность хранить данные о пользователе, другим хорошо за счет того, что теперь им не нужно каждый раз заново вводить данные о себе (email, логин, icq и т.д.) и что-то этому подобное…

Cookies (а также сессии) используются везде: в интернет-магазинах, на форумах и т.д. Cookies нужны в тех случаях, когда требуется сохранять определенную информацию на протяжении нескольких страниц. Или на протяжении всей сессии.


Перед изучением урока «Что такое cookies?», я рекомендую скачать исходник себе на компьютер!

Для начала поговорим о куках, как, грубо говоря, разновидности сессии.

Определение

Определим, что Cookies — это текстовые строки, хранящиеся на стороне клиента, и содержащие пары «имя-значение», с которыми связан URL, по которому браузер определяет, нужно ли посылать cookies на сервер.

Установка

Устанавливать очень просто, всего лишь единственной функцией – setcookie

Синтаксис setcookie:

Где:

Name – имя устанавливаемого cookie

Value – значение сохраняемого cookie с именем name

Expire – время жизни cookie

Path – путь, по которому доступен cookie

Domain – домен, из которого доступен cookie

Secure — директива, определяющая, доступен ли cookie не по запросу HTPPS. По умолчанию эта директива имеет значение 0, что означает возможность доступа к cookie по обычному запросу HTTP.

Пример использования cookies

Теперь пришел черед ознакомиться с простым примером использования cookie. Это будет простой подсчет просмотров страницы пользователем.

Я обновил страницу 12 раз и в cookie с именем views записалось значение «12».

куки

Далее мы просто проверим, как записанный cookie отображается в настройках браузера. Например, в Google Chrome.

куки

куки

куки

Вот мы увидели весь код в целом, а сейчас разберем его в частности. Давайте для начала прочитаем его словесно.


Блок 1

Если существует такая СУПЕРГЛОБАЛЬНАЯ переменная $_COOKIE[‘views’] с именем ‘views’, то мы просто присвоим её значение переменной $views и преинкрементируем её (++$views; тождественен Sviews= $views +1;). Далее снова идет условие: если невозможно записать cookie в браузере клиента, то вывести сообщение, чтобы он разрешил записывать cookies.

Конец 1-го блока

/***вставка***/

setcookie(‘views’, $views) – php функция записи cookie в браузер клиента. Где ‘views‘ – это имя cookie, а $views – это переменная, которая содержит значение записываемого cookie.

/***вставка***/

Блок 2

Если же $_COOKIE[‘views’]) не существует, то вместо операций $views = $_COOKIE[‘views’]; ++$views; мы присвоим переменной $views единицу. $views=1; А остальное такое же как и в первом блоке.

Конец 2-го блока


Если же $_COOKIE[‘views’]) не существует, то вместо операций $views = $_COOKIE[‘views’]; ++$views; мы присвоим переменной $views единицу. $views=1; А остальное такое же как и в первом блоке.

Время жизни cookies

Если мы хотим, чтобы значение cookie сохранялось после того, как пользователь закроет сессию, то нам нужно установить третий параметр функции setcookie().

Установить можно его несколькими способами. Всего их два, может, кто больше знает, но я использую именно эти два. Первый – это задавать срок жизни при помощи встроенной php функции time(), второй – усовершенствованный вариант mktime().

time() позволяет переводить текущее время в секунды с начала эпохи, это где-то в 1975 году началось.

mktime() позволяет переводить любое понятное нам время (типа 20-01-2010 17:45:08) в секунду с начала эпохи.

Синтаксис:

Где hour, minute, second, month, day, year – это соответственно часы, минуты, секунды, месяцы, дни, годы. Допустим, мы хотим отобразить время в секундах такой даты — 29 января 2000 года 17 часов 30 минут. Это будет выглядеть так:

Давайте теперь немного видоизменим наш самый первый код, то есть продлим жизнь нашей cookie на день вперед.

Результат:

куки

Удаление cookie

Это просто:

Защита cookie

Ниже приведен список способов защиты cookies, которые желательно применять комплексно.

Например, можно открывать доступ только из определенного каталога и страницы

Шифровать данные

Список доменов, которые имеют доступ к cookies

Доступ только из определенного каталога и страницы

Суть этого способа состоит в том, что только из определенной страницы на сайте можно получить доступ к cookie. (Вместе с ограничением под домен дает достойную защиту. Это ещё без шифрования данных.)

Рассмотрим этот способ на примере. В корневом каталоге сайта создадим любой каталог. Я, например, создал каталог под именем web и закинул ранее созданный нами файл index.php, код которого изображен в самом начале нашей статьи, но только с одним изменением. Я изменил название старого cookie на viewsweb. То есть новый cookie будет иметь вид $_COOKIE[‘viewsweb’];

Только теперь в новом файле index.php, что находится в директории web вместо:

Нужно будет переписать на это:

где ‘web/index.php’ означает, что доступ к этому куки можно получить только из страницы //sessionsandcookies.gromitsu/web/

Код web/index.php:

А теперь для наглядности создадим еще один файл test.php в корне сайта с таким вот кодом:

Пример в картинках

куки

куки

Доступ через домен

Практически то же самое, что и в примере выше, только setcookie будет иметь такой вид:

При таком ограничении домен может принимать формы mysessionsandcookies.gromitsu или
your.sessionsandcookies.gromitsu.

Шифрование данных

На эту часть нашего замечательного урока можно написать отдельную статью. Так что здесь мы просто пробежимся галопом по Европам. Смотрим код:

Расшифровка

Заключение

Думаю, я многое описал, что касается cookies, естественно для новичка в этом деле. И как всегда, главная задача программиста, это хорошо защитить написанный ним сценарий (скрипт). И этой защите можно посвятить целую статью.

Если вы уже добрались до этого места, то вы разобрались с основными принципами работы с cookies, и можете уже применять их на практике.

Куки применяются практически везде, где нужно сохранять данные между транзакциями (запросами на посещение страниц). Это например сохранение данных при авторизации (за вас автоматически вводятся пароль и логин, естественно пароль хорошо зашифрован), или, например, в интернет-магазинах (сохранение товаров, которые вы положили в корзину, даже если вы закрыли браузер и вернулись, например, где-то в течении часа, то корзина ещё не опустела).

На этом, урок что такое куки и с чем его едят для начинающих, завершен.

Автор: Влад Паук

Редакция: Рог Виктор и Андрей Бернацкий. Команда webformyself.

E-mail: contact@webformyself.com

Проект webformyself.com — Как создать свой сайт. Основы самостоятельного сайтостроения

"Киберсант-вебмастер" — самый полный курс по сайтостроению в рунете!

P.S. Хотите опубликовать интересный тематический материал и заработать? Если ответ «Да», то жмите сюда.

Метки: , , ,

Похожие статьи:

Комментарии Вконтакте:

Комментарии (23)