Что такое сессии
Прежде чем перейти к серьезным вопросам. Я решил заполнить несколько пробелов. В данном случае их два. Это сессии и cookie. Во многих серьезных проектах без этих вещей просто не обойтись. Значит мы должны знать, зачем и как это использовать. Начну с сессий. |
Session или сеанс, позволяет серверу определить пользователя с помощью специального номера, который уникален и назначается при работе пользователя с сервером. Кроме того, сессии позволяют связывать переменные с этим пользователем и хранить эти переменные на сервере. Другими словами сессии позволяют делать переменные глобальными для нескольких разных скриптов.
Чтобы начать сессию надо создать её с помощью функции session_start(). Кстати, если вы хотите, чтобы данные, которые генерируется сессиями были доступны на всех страницах. На каждой необходимо открыть сессию.
Когда я решил покрутить механизм сессий. То сделал в скрипте следующее.
...
интересный код
...
session_start();
?>
И у меня выскакивала ошибка. Оказывается, что сессию необходимо объявлять в самом начале программы. То есть:
session_start();
...
интересный код
...
?>
Еще одним замечательным свойством сессий является то, что они могут создавать переменные.
Делается это очень просто.
$_SESSION[‘имя переменной’] = value;
Если вы хотите удалить переменную, то воспользуйтесь следующей функцией:
unset($_SESSION[‘имя переменной’])
Переменная созданная с помощью сессии будет храниться на сервере в файле с именем, совпадающим с идентификатором сеанса. Кстати… уникальный идентификатор создается для каждого пользователя, который присваивается переменной $PHPSESSID.
Так же этот идентификатор можно получить от функции session_id:
$mysid = session_id();
Кстати говоря, этой же функцией можно его и изменить:
$mysid = ‘1234567’;
Session_id($mysid);
Я сделал небольшой пример, который покажет для чего можно применять сессии.
index.php
error_reporting(0);
session_start();
$_SESSION['flag'] = good;
?>
<html>
<head>
<title>тестируем сессии</title>
</head>
<body>
зайти на супер секретную страницу
</body>
</html>
obrabotka_session.php
error_reporting(0);
session_start();
if ($_SESSION['flag'] == good)
{
?>
<html>
<head>
<title>тестируем сессии</title>
</head>
<body>
теперь вам открыты тайны сессий в php
</body>
</html>
<?
}
else echo"здесь ничего нет";
?>
Как видно здесь используются сессии для защиты от несанкционированного доступа.
Если вы откроете браузер и сразу наберете https://localhost/obrabotka_session.php
То увидите не то, что хотелось 😉
Если вы закроете страничку с объявленной сессией, то сессия автоматически уничтожится. И зайдя вновь, вы будете для сервера новым пользователем. Если нужно уничтожить сессию, не дожидаясь закрытия браузера, то можно воспользоваться функцией session_destroy().
Теперь все это надо осмыслить, так как я думаю, что еще не раз придется воспользоваться полученными знаниями и у меня уже есть кое какие идеи на будущее. Которыми я с вами вскоре поделюсь 😉
Интерестно, а с безопастностью нет проблем при испольовании сессий.