Я так полагаю, для многих эта тема является темным лесом, хотя по факту ничего сложного тут нет)) Сейчас я постараюсь немного приоткрыть завесу и сделать так, чтобы вы могли использовать эти столько полезные возможности.
Начнем с части теоретической. Итак, что же такое куки, или как их название звучит на оригинале cookie?
Особо углубляться в подробности я не буду, ведь для этого есть Википедия, однако напишу следующее: Куки — это некоторые текстовые данные, что сайт может хранить на компьютере пользователя с целью:
- сохранения сессии (думаю, вы видели часто галочку в формах авторизации на сайтах по типу «Запомнить меня». Так вот, при установке такой галочки сайт сажает куки на ваш компьютер, чтобы запомнить вас и сохранить текущий сеанс);
- сохранение настроек сайта (к примеру, на сайте есть возможность выбора его оформления или оформления некоторых его элементов, и изменив однажды их и получив куки на свое устройство с которого зашли на сайт — вы будете видеть такие настройки до тех пор, пока не удалите куки или не пройдет время их действия);
- ведение статистики по пользователям, а также для некоторых других нужд.
Следует понимать, что само хранение куки на устройстве (будь то ПК, ноутбук, планшет или телефон) не опасно, т.к. куки сами по себе — это простой текстовый файл. Однако, стоит опасаться такой уязвимости, как подмена куки, к примеру, для авторизации на сайте другим пользователем, злоумышленником, что украл куки у жертвы и принимать соответствующие меры против этого (об этом расскажу в следующих статьях на тему куки).
Теперь переходим к практике.
Создание куки
Для того, чтобы создать куки используется функция setcookie(), описание ее привожу ниже:
setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
- name — единственный параметр среди прочих, что следует обязательно указывать (например: «user», «theme» и т.п.);
- expire — дата (Unix time integer, получаемое с помощью time() и mktime() функций) , когда срок действия куки подойдет к концу (например: time()+3600 следует указать, чтобы срок действия куки закончился через час);
- domain — строковая переменная с именем домена (например: «v1rr.us»);
- secure — целое число (0 или 1), в случае выбора 1 — это значит, что кука должна передаваться только по https (защищенное соединение).
Пример создания куки:
PHP
// Создать куки с параметром "user_id" и его значением // "321" на 1 час для домена alexdev.ru setcookie("user_id","321",time()+3600,"alexdev.ru");
Важно отметить, что куки должны быть отправлены до вывода header информации на странице (т.е. вызов функций работы с куки должен быть размещен до вывода <html> и <head>).
Обращение к куки
Важным моментом является то, что обращаться к куки можно после их создания — только после перезагрузки страницы. До перезагрузки они будут невидимыми.
Чтобы обратиться к нашей созданной куки и получить данные из нее, воспользуется глобальным массивом $_COOKIE:
PHP
// Выведет на экран значение куки, в нашем случае это "321" echo $_COOKIE["user_id"];
Также следует знать, что при получении куки скриптом, она автоматически декодируется и после этого создается переменная с именем куки, т.е. в нашем случае мы еще сможем получить данные из куки обратившись к ней следующим образом:
PHP
// Также будет выведено "321" echo $user_id;
Удаление куки
Само собой, если пользователю необходимо выйти из своей учетной записи на сайте, нужно предусмотреть и удаление куки. Делается это созданием куки с таким же именем, но отрицательным временем, чтобы куки считалась уже не актуальной:
PHP
// Задаем те же параметры, но с отрицательным временем time()-3600 setcookie("user_id","321",time()-3600,"alexdev.ru");
В дальнейшем, возможно, продолжу расписывать тему куки, но это уже совсем другая история 🙂
Спасибо за внимание.