Что такое сессии в PHP?

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

Что такое сессии в PHP

В данной статье будет рассмотерно методы вызова, объявления и управления сессиями в PHP, а точнее функции механизма сессий. Просто без знания этой информации, разобраться даже в простом механизме сессий будет практически невозможно. И так...

Как инициализировать сессию в PHP?


Для того, чтобы создать сессию в PHP, нужно прибегнуть к помощи функции session_start(); , которая и запускаем механизм сесси. Эта функция должна записываться на странице, или в скрипте до начала чтения HTML - кода. Это важно!!! Иначе ничего не будет работать. Если просто, то нужно ставить функцию
session_start();
в самой первой строке скрипта, а обычно для этого создают конфигурационный файл, например config.php, в котором первой строкой и будет данная функция. Точно, как на картинке:

как создать сессию в PHP

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

подключение сессии на сайте

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

У каждой сессии существует свое имя, что логично, иначе не было бы смысла в этом механизме. Создать имя для сессии можно вызвав функцию
session_name();
Имя можно ей создать любое,
например session_name('moya_pervaya_sessiya');
Но если Вы забыли назвать сессию, ничего страшного, PHP - это сделает за Вас, и это обычно PHPSESID.
Ни в коем случае не нужно путать имя сессии (moya_pervaya_sessiya или PHPSESID) и название временного файла SID
- где хранятся все данные объявленной сессии, или группы сессий!!! Ксати, узнать SID сессии можно довольно просто при помощи функции
session_id()
Но не нужно стараться указывать свой SID, PHP это сделает сам и намного лучше за вас.

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

Для того, чтобы вытащить переменные, которые храняться в сессиях и несут нужную нам информацию, нужно обратиться к суперглобальному массиву
- $_SESSION[ ];
И делается это так:
echo $_SESSION['imya_peremennoy'];
после чего мы увидим значение нашей переменной, которое храниться в массиве сессии.

А чтобы занести значения в сессию, а это могут быть пароли, имена, настройки и любая другая информация любого размера (для безопасности - допустимые размеры заносимых данных нужно всегда указывать при создании скрипта, это обезопасит ваш проект от всякого рода сбоев или вообще от выхода из строя!), нужно воспользоваться функцией
session_register();

Например, нужно внести три переменных в механизм сессии:
$name="alla";
$password="fig_vam";
$text="Хочу только сессию изучить, гулять небуду!!!";

смысл записанного в переменные обсудим позже...

Для этого просто регистрируем эти переменные при помощи функции:
session_register("name","password","text");
Нужно обратить особое внимание, что переменные записаны без знака $!!!

Чтобы проверить, зарегистрирована ли какая то переменная в данной сессии, нужно вызвать ее в функции:
session_is_registered("imya_peremennoy");
И если она существует, ее можно будет посмотреть.

И естественно, нужно знать как удалить переменную из сессии, это делается вызовом переменной в теле функции:
session_unregister("imya_peremennoy");
После чего переменная уничтожиться. Хочу уточнить, что уничтожать переменную, так как и объявлять, в PHP - можно в любом месте скрипта, а не только с самого начала.

И на самый конец, нужно знать, как удалить сессию, а тем самым и все переменные, которые в сессии записаны. Это делается проще всего. В том месте, где нужно все удалить, нужно вызвать функцию:
session_unset();
Вызывают эту функцию не всегда, (обычно закрыв окно браузера, сессия уничтожается) и это зависит от требований скрипта, но если Вам нужно чтобы "конкретно" все уничтожить в сессии и саму сессию, тогда вызывайте эту функцию.

Вот для начала и все, а в следующей статье, все выше написанное, подробно рассмотрим на примерах. Так что заходите и следите за новыми постами!

по материалам сайта kapon.com.ua   28 03 2013

Поделитесь ссылкой на статью...


Всего комментариев - 0.    Можете оставить свой комментарий.


   Login *
   E-mail *
   URL (не обязательно)
- подписаться на сообщения        - я не спамер