Когда использовать $_SESSION и когда $_COOKIE

И снова приветствую Вас, уважаемые читатели моего блога!

Немного подумал и решил сегодня написать статейку по программированию, а точнее про сесии и куки. Усаживайтесь поудобнее — начинаем!

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

Хранение данных которые передаются от одной страницы в другую в PHP осуществляются благодаря двум глобальным переменным $_SESSION и $_COOKIE. Цель данной статьи дать краткий обзор различий между $_COOKIE и $_SESSION когда что лучше использовать, плюсы и минусы.

Ко мне часто поступают вопросы про хостинг, которым я пользуюсь и поэтому решил указать хостинг в статье https://sprinthost.ru. Вы можете попробовать попользоваться хостингом 30 дней бесплатно. Чтобы понять, как будет работать Ваш сайт на этом хостинге просто перенести свой сайт (в этом поможет поддержка хостинга бесплатно) и и таким образом сможете понять подходит хостинг Вам или нет. На этом хостинге находятся сайты с 20 000 тысяч посещаемость и сайты чувствуют себя отлично. Рекомендую! Да, если делать оплату на 1 год то получаете скидку 25%. И что мне нравится - тех. поддержка всегда помогает в технических вопросах, за что им спасибо. Как Вы понимаете не всегда проходит всё гладко и нет желания, чтобы сайт не был доступен тем самым страдал трафик и доход.

php-cookies

Разница между куки и сессиями то как они хранят данные. Куки хранятся локально на компьютере пользователя тогда как сессии хранятся на сервере у вас.

Сессии

Сессии хранят временные данные о пользователях, и они особенно полезны, если вы не хотите, чтобы были доступны за пределами сервера. Это альтернатива использованию cookie, если пользователь отключил cookie на своем компьютере, поскольку PHP может автоматически переписать URL так, чтобы передать идентификатор сессии.

Плюсы

  1. Может легко хранить большое количество данных
  2. Сохранять трафик, передовая только ссылки на сессии
  3. Данные хранятся на сервере. Это дает сессии безопасными, потому что данные не могут быть просмотрены или отредактированы клиентом

Минусы

  1. Сессии заканчиваются при закрытии браузера, но вы можете настроить в php.ini на какое время хранить сессии. Можно настроить на вечное хранение.

Куки

Куки отправляются на сервер при каждой загрузке страницы. PHP считывает и сохраняет данные в супер глобальную переменную $_COOKIE. После этого вы можете вызывать их где угодно в любом месте.

Плюсы

  1. Хранятся столько сколько потребуется даже после закрытия браузера
  2. Удобно для функции “запомнить меня”
  3. Удобно для хранения временных настроек. Например если пользователь просматривает нумерованный список элементов отсортированных определенным образом, настройки сортировки могут быть сохранены в куки.

Минусы

  1. Данные хранятся на машине пользователя. Это означает, что пользователь может изменить их, посмотреть
  2. Можно хранить только ограниченное количество данных.

Cookie в действии

Создание cookie

Cookie создаются вызовом функции setcookie(), сервер добавляет соответствующую строку в заголовок. Если вы попытаетесь послать cookie после того, как начнете посылать HTML, PHP отметит наличие серьезных ошибок, а cookie не будет размещен. Функция setcookie() принимает три основных параметра имя cookie, значение и дату окончания срока действия. Например:

setcookie("Ordering",$_POST['ChangeOrdering'], time()+31536000);

Использование Cookie

echo (isset($_COOKIE['ordering'])) ? $_COOKIE['ordering'] : 'cookie value not set';

Удаление cookie

setcookie('favorite_color');

Установка cookie без значения все равно что его удаление. Это не удалит файл с машины пользователя. Чтобы удалить файл вам нужно поставить значение cookie в прошлом времени и браузер удалит файл.

Сессии в действии

Создание сессии

session_start();

Эта функция должна вызываться где то в начале вашего кода до любого вывода. Когда вы вызываете эту функцию, PHP проверяет поставлены ли у пользователя куки сессии. Если да то он загружает их в супер глобальную переменную $_SESSION. А если нет то PHP создаст на сервере новый файл сессий и посылает ид сессии обратно клиенту.

Установка значения

$_SESSION['first_name'] = 'Brian';

Считывание значения

echo $_SESSION['first_name'];

Удаление значения

unset($_SESSION['first_name']);

Завершение сессии

session_destroy();

Получилась хоть и не большая, но познавательная статья.

Если есть вопросы или предложения — задавайте на этой странице. Обещаю, отвечу всем!!!

Также подписывайтесь на обновление новостей блога!

На этом буду прощаться с Вами — до новых встреч!

С Вами был ваш Юрич!


Обо мне
Юрич:
Занимаюсь созданием сайтов на WordPress более 6 лет. Ранее работал в нескольких веб-студиях и решил делиться своим опытом на данном сайте. Пишите комментарии, буду рад общению.

Заказать сайт