Подсказки на компьютерную тематику

Можно подсмотреть, если забыли…

Что такое и как использовать Cookies и Session на PHP или JS

Основы знаний о Куках и Сессиях

Сессии/Session/ и Куки/Cookies это механизмы, предназначенные для хранения и использования различных сведений при переходах между страницами любого сайта.

    Основная информация о Cookies и Session:

  • Сессии хранятся на сервере
  • Cookies хранятся на компьютере пользователя, обычно в папке браузера. Соответственно, у каждого браузера на компьютере свои значения куки
  • Сессии более безопасно использовать, чем куки
  • Каждая сессия создает индивидуальный идентификатор, хранящийся по умолчанию в куке PHPSESSID
  • Куки и сессии создаются только с помощью какого-либо кода, а не сами по себе, причем у случайных сайтов обычно разные куки и сессии, и к тому же в разных количествах
    Примечание по PHPSESSID:

  • Получить значение ID сессии можно с помощью функции на PHP session_id().
  • Если Cookies в браузере отключены, то PHPSESSID с сервера на браузер и обратно будет передаваться путем добавления текста в ссылку или скрытого поля в форму в виде /example.php?PHPSESSID=0r3iidf8be980kvanprdfmrhhp или input type=”hidden” name=”PHPSESSID” value=”0r3iidf8be980kvanprdfmrhhp” соответственно.
  • Если автоматически полученное значение PHPSESSID изменить, то именно новое значение будет отправляться на сервер и обратно!
    Примечание по Cookies:

  • Для использования кук, следящих за пользователем, необходимо получить явное разрешение от этого пользователя!

Работающие примеры создания значений в сессии и куки программными методами

Внесение значений в Cookies и Session на PHP


//запустить сессию
session_start();
//поместить значение в сессию с названием example
$_SESSION['example']='example of Сессии';
// создать куку с названием Cookie_example и значением Cookie_example_content
SetCookie("Cookie_example","Cookie_example_content",'','','samesite','',true);

/*Для установки Cookies в php используется функция SetCookie()
В этой функции имеется шесть параметров, и только первый из них обязателен
name – задает имя для Cookie;
value – помещает значение;
expire – время действия переменной, если не указано, то переменная существует до закрытия браузера;
path – путь к Cookie;
domain – содержит имя хоста, с которого кука была создана;
secure – передача Cookie через защищенное HTTPS-соединение.
Обычно используются только три первые параметра.
*/

Внесение значений в Cookies на JavaScript

<!--создаст куку ExamplecookieJS с содержимым ExamplecookieСодержимое -->
<script>document.cookie = 'ExamplecookieJS=ExamplecookieСодержимое'</script>

Изменение значений в куках и сессиях

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

Просмотр значений, содержащихся в сессии и куках

Просмотр данных Cookies в браузере Google

В настройках браузера или по адресу chrome://settings/siteData” можно увидеть список всех посещенных сайтов со всеми существующими значениями кук.

Вывод значений сессий и кук с помощью PHP

Вывести содержимое значений вышеуказанных механизмов можно с помощью следующего кода

//посмотреть значение сессии example
echo "SESSION['example']=".$_SESSION['example'];
echo "COOKIE['Cookie_example']=".$_COOKIE['Cookie_example'];

Вывод всех значений Cookies на JS

Чтобы просмотреть все куки сайта и их значения на Javascript можно использовать следующий код

<script>alert( document.cookie )</script>

Образец показа куки в разделе настроек браузера

У каждой сессии после создания на сервере создается уникальный идентификатор, значение которого по умолчанию помещается в браузер в куки под именем PHPSESSID. Все остальные куки можно увидеть там же.

  • PHPSESSID
  • Name
  • PHPSESSID
  • Content
  • 0r3iidf8be980kvanprdfmrhhp
  • Domain
  • saitznak
  • Path
  • /
  • Send for
  • Same-site connections only
  • Accessible to script
  • Yes
  • Created
  • Wednesday, September 2, 2020 at 7:28:55 PM
  • Expires
  • When the browsing session ends

Удаление Cookies

Удаление куки через JS


<!--удаляет куку ExamplecookieJS со значением ExamplecookieСодержимое-->
<script>document.cookie = 'ExamplecookieJS=ExamplecookieСодержимое; max-age=0'</script>

Удаление куки через PHP


//удаление куки Cookie_example
setcookie('Cookie_example', '', time()-1);

Примерный порядок создания и использования Cookies на PHP

    Куки:

  1. сначала создаются на PHP или JS
  2. затем сохраняются в используемом браузере
  3. далее браузер будет автоматически добавлять их в каждый запрос к серверу
  4. сервер получает эти куки и сравнивает их с ранее сохраненными

Пример кода создания и проверки содержимого куки с настройкой httpOnly


//создание куки через PHP
setcookie("Cookie_one","Cookie_one_content", NULL, NULL, NULL, NULL, TRUE);
//при первой перезагрузке страницы передает куки с сервера на браузер
//и только после второй перезагрузки страницы, получает куку с браузера и показывает ее
echo "<br>COOKIE['Cookie_one']=".$_COOKIE['Cookie_one'];
//создание куки через JS
echo "<script>document.cookie = 'cookieJS=cookieContaining'</script>";
//после первой перезагрузки значение куки отправится на сервер
//после второй перезагрузки значение будет получено от сервера и показано
echo "<br>COOKIE['cookieJS']=".$_COOKIE['cookieJS'];

Что такое и как использовать Cookies и Session на PHP или JS

Основы знаний о Куках и Сессиях

Сессии/Session/ и Куки/Cookies это механизмы, предназначенные для хранения и использования различных сведений при переходах между страницами любого сайта.

    Основная информация о Cookies и Session:

  • Сессии хранятся на сервере
  • Cookies хранятся на компьютере пользователя, обычно в папке браузера. Соответственно, у каждого браузера на компьютере свои значения куки
  • Сессии более безопасно использовать, чем куки
  • Каждая сессия создает индивидуальный идентификатор, хранящийся по умолчанию в куке PHPSESSID
  • Куки и сессии создаются только с помощью какого-либо кода, а не сами по себе, причем у случайных сайтов обычно разные куки и сессии, и к тому же в разных количествах
    Примечание по PHPSESSID:

  • Получить значение ID сессии можно с помощью функции на PHP session_id().
  • Если Cookies в браузере отключены, то PHPSESSID с сервера на браузер и обратно будет передаваться путем добавления текста в ссылку или скрытого поля в форму в виде /example.php?PHPSESSID=0r3iidf8be980kvanprdfmrhhp или input type=”hidden” name=”PHPSESSID” value=”0r3iidf8be980kvanprdfmrhhp” соответственно.
  • Если автоматически полученное значение PHPSESSID изменить, то именно новое значение будет отправляться на сервер и обратно!
    Примечание по Cookies:

  • Для использования кук, следящих за пользователем, необходимо получить явное разрешение от этого пользователя!

Работающие примеры создания значений в сессии и куки программными методами

Внесение значений в Cookies и Session на PHP


//запустить сессию
session_start();
//поместить значение в сессию с названием example
$_SESSION['example']='example of Сессии';
// создать куку с названием Cookie_example и значением Cookie_example_content
SetCookie("Cookie_example","Cookie_example_content",'','','samesite','',true);

/*Для установки Cookies в php используется функция SetCookie()
В этой функции имеется шесть параметров, и только первый из них обязателен
name – задает имя для Cookie;
value – помещает значение;
expire – время действия переменной, если не указано, то переменная существует до закрытия браузера;
path – путь к Cookie;
domain – содержит имя хоста, с которого кука была создана;
secure – передача Cookie через защищенное HTTPS-соединение.
Обычно используются только три первые параметра.
*/

Внесение значений в Cookies на JavaScript

<!--создаст куку ExamplecookieJS с содержимым ExamplecookieСодержимое -->
<script>document.cookie = 'ExamplecookieJS=ExamplecookieСодержимое'</script>

Изменение значений в куках и сессиях

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

Просмотр значений, содержащихся в сессии и куках

Просмотр данных Cookies в браузере Google

В настройках браузера или по адресу chrome://settings/siteData” можно увидеть список всех посещенных сайтов со всеми существующими значениями кук.

Вывод значений сессий и кук с помощью PHP

Вывести содержимое значений вышеуказанных механизмов можно с помощью следующего кода

//посмотреть значение сессии example
echo "SESSION['example']=".$_SESSION['example'];
echo "COOKIE['Cookie_example']=".$_COOKIE['Cookie_example'];

Вывод всех значений Cookies на JS

Чтобы просмотреть все куки сайта и их значения на Javascript можно использовать следующий код

<script>alert( document.cookie )</script>

Образец показа куки в разделе настроек браузера

У каждой сессии после создания на сервере создается уникальный идентификатор, значение которого по умолчанию помещается в браузер в куки под именем PHPSESSID. Все остальные куки можно увидеть там же.

  • PHPSESSID
  • Name
  • PHPSESSID
  • Content
  • 0r3iidf8be980kvanprdfmrhhp
  • Domain
  • saitznak
  • Path
  • /
  • Send for
  • Same-site connections only
  • Accessible to script
  • Yes
  • Created
  • Wednesday, September 2, 2020 at 7:28:55 PM
  • Expires
  • When the browsing session ends

Удаление Cookies

Удаление куки через JS


<!--удаляет куку ExamplecookieJS со значением ExamplecookieСодержимое-->
<script>document.cookie = 'ExamplecookieJS=ExamplecookieСодержимое; max-age=0'</script>

Удаление куки через PHP


//удаление куки Cookie_example
setcookie('Cookie_example', '', time()-1);

Примерный порядок создания и использования Cookies на PHP

    Куки:

  1. сначала создаются на PHP или JS
  2. затем сохраняются в используемом браузере
  3. далее браузер будет автоматически добавлять их в каждый запрос к серверу
  4. сервер получает эти куки и сравнивает их с ранее сохраненными

Пример кода создания и проверки содержимого куки с настройкой httpOnly


//создание куки через PHP
setcookie("Cookie_one","Cookie_one_content", NULL, NULL, NULL, NULL, TRUE);
//при первой перезагрузке страницы передает куки с сервера на браузер
//и только после второй перезагрузки страницы, получает куку с браузера и показывает ее
echo "<br>COOKIE['Cookie_one']=".$_COOKIE['Cookie_one'];
//создание куки через JS
echo "<script>document.cookie = 'cookieJS=cookieContaining'</script>";
//после первой перезагрузки значение куки отправится на сервер
//после второй перезагрузки значение будет получено от сервера и показано
echo "<br>COOKIE['cookieJS']=".$_COOKIE['cookieJS'];