Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

Cookie php

Cookie php

Приветствую! Тема сегодняшней рубрики 'Работа с куками(Cookie) в php'. Рассмотрим как создаются и как можно ими управлять. Поехали!

Для того чтобы установить новую куку, как бы это странно не звучало. Необходимо прописать следующее:

setcookie('name', "Андрей");

Функция setcookie() основная функция для управления куками в php. В нее мы передали два обязательных параметра: 'name' - имя cookie по которому мы сможем к ней обращаться и 'Андрей' некое значение(информация) которое мы хотим сохранить в cookie. Важно знать, что размер значения должен быть не более 4 кБайт.

Для получения всех cookie мы можем использовать супер глобальный массив $_COOKIE, если же хотим получить только нашу cookie 'name'.

var_dump($_COOKIE['name']);

Просто указываем в качестве ключа имя cookie. Куки также можно отслеживать через браузер просматривая заголовки страницы или с помощью javascript об этом я писал в данной статье JavaScript cookie.

Едем дальше! Функция setcookie() не ограничивается только двумя параметрами. Третьим аргументом она можем принимать время в секундах при наступлении которого кука(cookie) будет удалена.

Пример:

setcookie('name', "Андрей", (time() + 15));

Данная кука проживет всего 15 секунд а затем будет успешно удалена. Функция time() служат для начала отсчета от текущего времени.

Если мы хотим просто сразу удалить.

setcookie('name', "Андрей", (time() - 1));

То указываем прошедшее время. В нашем случаем мы просто отняли секунду от текущего времени.

Следующий параметр который может принимать функция setcookie() называется path, то есть путь(относительный адрес) на котором будет работать кука. Причем адрес строго относительно домена вашего сайта!

setcookie("name", "Андрей", 0, "/");

Здесь в качестве пути мы указали "/", в этом случае наша кука будет доступна для всех страниц сайта. Если мы хотим сделать ее доступной только к примеру для страницы контактов(https://domain.com/contact).

setcookie("name", "Андрей", 0, "/contact");

Нужно прописать так!

На вашем сайте могут использоваться поддомены. Для этого у функции setcookie() есть следующий параметр.

setcookie("name", "Андрей", 0, "/", "sub.domain.com");

В данном примере cookie устанавливается только для поддомена "sub.domain.com". Если оставить просто "domain.com" то cookie будут на основном домене и всех его поддоменах.

У нас еще остаются два последних параметра которые может принимать функция setcookie().

setcookie("name", "Андрей", 0, "/", "domain.com", false, false);

Эти параметры в качестве значения принимают boolean значение(true или false). По умолчанию они имеют значение false.

Первый из параметров(в функции он предпоследний) отвечает за тип соединения при котором будут устанавливаться cookie.

setcookie("name", "Андрей", 0, "/", "domain.com", true, false);

Здесь мы указали значение true что означает что cookie будут устанавливаться только по защищенному протоколу(ssl) https. При значении false cookie можно установить на любом соединении.

Последний параметр отвечает за доступность cookie для различных скриптов.

setcookie("name", "Андрей", 0, "/", "domain.com", false, true);

К примеру при значении true установленные cookie будут доступны для чтения только через HTTP-протокол, для таких скриптовых языков как javascript они будут не доступны.

Это можно очень легко проверить! Попробуйте сначала установить последний параметр со значением false и выполнить php скрипт.

setcookie("name", "Андрей", 0, "/", "domain.com", false, false);

Затем откройте консоль браузера и введите такую команду:

decodeURIComponent(document.cookie)

В результате вам выведется что то подобное:

name=Андрей

Теперь установите значение true и проделайте аналогичные действия. В результате вы уже не увидите ваших cookie в консоли браузера, хотя в заголовках страницы они есть. А все потому что для чтения сторонними скриптами они не доступны.

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

В общем на этом у меня все. Надеюсь данная статья была для вас полезной! Не забывайте подписываться в группу Вконтакте и переходите на канал Youtube.

Всем спасибо за внимание! Пока.

Оцените статью:

Статьи

Разработки

Комментарии

В данном разделе пока нет комментариев!

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm