PHP и Сессии

test

Кратко о сессиях.

1) Для чего нужны?

- Для того чтобы мы переходя со страницы сайта на страницу передавали между скриптами нужные данные в массиве $_SESSION. То есть мы просто записываем переменную в ассоциативный массив, например $_SESSION["uid"] = 1 при входе в систему(введя логин и пароль соответствующие) и после в других скриптах просто проверяем, авторизован пользователь или нет, например:

if (isset($_SESSION["uid"])){ /* НАШ КОД */ }

2) Что нужно для того чтобы работали PHP сессии?

- Нужно в начале каждого скрипта, выполнить ф-цию session_start();

3) Каким образом работает механизм сессий?

- Механизм сессий работает двумя способами.

* С помощью cookies, то есть сервер автоматически генерирует кукисы и пересылает клиенту, с каждым ответом клиент на сервер отправляет кукисы обратно. Кукисы, это по сути до 4кб файлик с парами параметр:значение. Вот собственно так и передается наш uid:1 в таком файлике.

* С помощью добавления ссылкам, формам скрытого идентификатора сессии. К формам добавляется скрытый инпут, к ссылкам приписывается идентификатор сессии. Вы могли заметить на некоторых сайтах url в браузере с идентификатором сессии.

4) Как удалить переменную сессии?

- с помощью уже должно быть известной вам ф-ции unset(), к примеру unset($_SESSION["uid"]); или же ф-цией session_unregister("uid");

5) Сколько времени длится сессия?

- По-умолчанию до того времени как вы закрыли браузер или бездействуете на сайте(не ходите по страничкам) 24 минуты(или другой, заданный в настройках сервера)

6) Как увеличить время жизни сессии средствами php?

- Собственно думаю нижеприведенный код достаточно элементарный:

$sessionCookieExpireTime=8*60*60; // 8 часов = 8 * 60 * 60
session_set_cookie_params($sessionCookieExpireTime);
session_start();

7) Как закрыть/закончить сессию?

- ф-ция session_destroy(); //без параметров

Ну собственно вроде кратко, но основное.

Категория: 
Share/Save

Делитесь с друзьями в социальных сетях! Оставляйте комментарии!

Share/Save

Это Вам так же может быть интересно!