it-blog.club
PHP печеньки - создаём, читаем, удаляем

PHP печеньки - создаём, читаем, удаляем

PHP Cookie (Куки) - Как установить, читать и удалять куки в PHP?

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

dart-veyder.jpeg

Что такое Cookie?

Куки очень полезны для хранения информации непосредственно в самом браузере пользователя. Это простой текстовый файл , который хранит максимум 4кб данных .

Куки создаются с помощью браузера по запросу сервера (в соответствии с логикой программы). После того, как печенье создается на стороне пользователя, его браузер отправляет эту информацию(из куки) обратно на сервер с помощью HTTP - заголовка.

Зачастую в куках хранятся логины, пароли и прочее. Например вы заходите на сайт, вводите свой логин и пароль. Сайт автоматом создаёт у вас куки с этими данными. И при следующем посещении сайта, он просто проверяет наличие кук, и подгружает данные сохранённого в них пользователя.


//Пример индексной страницы такого сайта
if($_COOKIE['login']){
header('location: /lk/index.php?login='.$_COOKIE['login']);//Переведёт сразу в личный кабинет
}
//Далее идёт, например, форма входа и регистрации

Почему Cookie?

HTTP является протоколом без запоминания состояний запросов , так что нет никакого способа , чтобы отслеживать предыдущие действия пользователя на сайте. Cookie's являются лучшим способом для хранения данных. Все знаю про печеньки желаний, которую ты разламываешь, а внутри бумажка с тем, что возможно с тобой произойдёт в будущем. Как по мне так именно от сюда и растут ноги, по поводу названия.

PHP Куки

Собственно так как я уже объяснил что это такое давайте узнаем, как установить куки в PHP.

Используем SetCookie()  метод для установки куки в пользовательском браузере.

Синтаксис для установки куки в PHP


setcookie(name, val, time, path, domain, secure);

name - Определяет имя куки.

val - Значение которое мы хотим хранить в куки. Куки всегда хранит значение строки.

time (необязательный параметр) - Установить время истечения срока действия куки. Если это поле пусто , то куки будут удалены при закрытии браузера.

domain (необязательное поле) - Установите область , в которой кука доступна. Если вы хотите установить кук для нескольких поддоменов , а затем использовать имя основного домена с точкой в качестве префикса.

Например:

Пусть my.com имеет несколько поддоменов , таких как tech.my.com, only.my.com. И я хочу чтобы кука установленная в my.com была доступна для всех моих поддоменов,  то я устанавливаю домен как .my.com .

secure(необязательное поле) - Это Определяет , должно ли печенье передаваться через защищенное соединение по протоколу HTTPS. По умолчанию установлено как FALSE. Если это установить тру, то это означает, что кука будет установлено только если защищенное соединение существует, и логично что при HTTP создана не будет.


setcookie("login","valera123");

При помощи скрипта выше у нас создастся кука с  именем login и с значением valera123.

Примечание: Куки может хранить только строковые значения. Они не могут хранить массив. Для того, чтобы сохранить массив в куки, вам нужно сначала преобразовать их в строку. Об этом я обязательно расскажу позже.

Примечание:  Как вы заметили, я не установил время жизни нашей печенюхи. Именно по этому она исчезнет после того, как наш браузер будет закрыт...

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

cookie.png

Мы не определили время истечения срока жизни куки. Зададим ей 30 дней. В этом случае, мы должны упомянуть о времени. После этого она будет жить в течение 30 дней, пока пользователь не удалит её вручную.

 setcookie("login","valera123",time()+3600*24*30); 

3600 - 1 час
24 - сутки
30 - дней

Как установить куки для субдоменов


setcookie("login","valera123",time()+3600*24*30,"/",".my.com");

Ну собственно данный пример уже приводился

Как получить значение куки в PHP

$ _COOKIE - используется для получения значения куки. Ниже приведён код как именно можно получить значение печеньки, установленной ранее.


$val = $_COOKIE['login'];
echo $val; //Выведет valera123

Как удалить Cookie в PHP

Чтобы удалить куки в PHP, установите отрицательное время (прошедшее время).


setcookie("login","valera123",time()-3600*24);

Так что же происходит, если мы устанавливаем отрицательное время. В этом случае, кука истекает автоматически.

Важные моменты о Cookie

1. Кука может хранить максимум до 4 Кбайт данных.

2. Она может хранить только строки.

3. Cookies могут быть доступны только в браузере, который установит их. Cookie установленные в браузере Chrome не могут быть доступны в браузере Mozilla, или каком либо другом.

4. Старайтесь избегать хранения конфиденциальных и особо секретных данных в куки.

Собственно на этом всё. Я очень надеюсь, что вам понравилась данная строка, делитесь своим мнением в комментариях, а так же не забывайте делать репосты.


it-blog.club 2887
Автор: Ярослав Хмель


Если Вам понравилась статья, то можете поддержать блог переведя N сумму на кофе авторам или оплату хостинга!
В любом случае спасибо! А так же не забывайте про группу в ВК
ПОИСК ПО САЙТУ
Поддержать