→ Пошук по сайту       Увійти / Зареєструватися
Знання Мова програмування PHP Сессии. Авторизация доступа с помощью сессий в PHP

Сессии. Авторизация доступа с помощью сессий в PHP. Семантичний конспект розділу

Компетенція Програмування на PHP

Сессии. Авторизация доступа с помощью сессий в PHP

Лекция посвящена изучению вопросов обеспечения безопасности в сети и использованию для этих целей механизма сессий. Рассматриваются: инициализация сессий, передача идентификатора пользователя, регистрация переменных сессии, уничтожение сессии. В завершение приводится пример авторизации пользователя с помощью механизма сессий
Семантичне ядро:
Cессии ↓  Cookies ↓  $_SЕSSION ↓  Имя сессии ↓  Этапы работы с сессиями

1. Сервер

Сервер — набор программ, которые контролируют выполнение различных процессов


Сервер Может обрабатывать большое количество сессий одновременно, и все их временные файлы будут храниться в директории, заданной параметром session.save_path

2. Cессии [Центральне поняття розділу]

Cессии — Это механизм, который позволяет создавать и использовать переменные, сохраняющие свое значение в течение всего времени работы пользователя с сайтом

Сервер Может обрабатывать большое количество сессий одновременно, и все их временные файлы будут храниться в директории, заданной параметром session.save_path

3. php.ini

php.ini — Файл, где хранятся настройки PHP, в том числе и для работы с сессиями

4. Этапы работы с сессиями [Ключове поняття розділу]

Этапы работы с сессиями:
  1. Установка имени сессии (не обязательно)
  2. Создание сессии
  3. Регистрация переменных сессии и их использование
  4. Удаление переменных сессии (разрегистрация)
  5. Уничтожение сессии

5. Имя сессии [Ключове поняття розділу]

Имя сессии — Это имя параметра, в котором хранится идентификатор сессии


Имя сессии Задается с помощью функции session_name() либо используется значение из session.name php.ini

7. Идентификация пользователя

Идентификация пользователя Решается путем присвоения каждому пользователю уникального номера, так называемого идентификатора сессии (SID, Session IDentifier)

8. Cookies [Ключове поняття розділу]

Cookies — Были созданы специально как метод однозначной идентификации клиентов


Cookies Представляют собой расширение протокола HTTP

9. session.use_cookies

session.use_cookies — Определяет, использовать ли cookies при работе с сессиями


По умолчанию эта опция включена (т.е. принимает значение "1").

10. Идентификатор сессии

Идентификатор сессии — Уникальный номер, который служит для идентификации пользователя


Идентификатор сессии :
  • Генерируется PHP в тот момент, когда пользователь заходит на сайт, и уничтожается, когда пользователь уходит с сайта
  • Представляет собой строку из 32 символов (например, ac4f4a45bdc893434c95dcaffb1c1811)
  • Передается на сервер вместе с каждым запросом клиента и возвращается обратно вместе с ответом сервера

11. Способы передачи идентификатора сессии

cookies
  • С помощью параметров командной строки. В этом случае идентификатор сессии автоматически встраивается во все запросы (URL), передаваемые серверу, и хранится на стороне сервера
  • 12. session.cookie_lifetime

    session.cookie_lifetime — Задает длительность жизни cookies в секундах


    session.cookie_lifetime По умолчанию это "0", т.е. данные в cookies считаются правильными до закрытия окна браузера

    13. session.name

    session.name — Определяет имя сессии по умолчанию


    session.name — Используется в cookies как имя переменной, в которой хранится идентификатор сессии


    session.nameПо умолчанию устанавливается как PHPSESSID

    14. session_destroy()

    session_destroy() — Уничтожает текущую сессию целиком


    session_destroy() Не сбрасывает значения глобальных переменных сессии и не удаляет cookies, а уничтожает все данные, ассоциируемые с текущей сессией

    15. Уничтожение сессии

    Уничтожение сессии Синтаксис:
    session_destroy() ;

    16. $_SЕSSION [Ключове поняття розділу]

    $_SЕSSION — В этом массиве хранятся все зарегистрированные (т.е. глобальные) переменные сессии

    17. Регистрация переменных сессии

    Регистрация переменных сессии Не рекомендуется одновременно использовать оба метода: $_SЕSSION и session_register()


    Регистрируются не значения, а имена переменных.

    Регистрация переменных сессии Демонстрационный код:
    session_register(имя_переменной1, 
               имя_переменной2, ...);
// Внимание! Данная ф-ия устарела. 
// Используйте $_SЕSSION
    Регистрация переменных сессии Демонстрационный код:
    $_SЕSSION['имя_переменной'] = 
           'значение_переменой';

    18. Удаление переменных сессии

    Удаление переменных сессии Синтаксис:
    unset($_SЕSSION['имя_переменной'])

    19. unset($_SЕSSION['имя_переменной'])

    unset($_SЕSSION['имя_переменной']) — Удалает переменную сессии

    20. Доступ к переменным сессии

    Доступ к переменным сессии Осуществляется с помощью массива $_SЕSSION['имя_переменной']

    Доступ к переменным сессии Если в настройках php включена опция register_globals, то обращаться можно, как к обычным переменным, например так: $имя_переменной

    21. session_id()

    session_id() — Возврящает идентификатор текущей сессии

    22. session_name()

    session_name() — Задает имя сессии


    session_name() — Без параметров возвращает имя текущей сессии


    session_name() Вызывать следует еще до инициализации сессии


    session_name()Синтаксис:
    session_name([имя_сессии]);

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

    Создание сессии Демонстрационный код:
    <?
    sеssion_start(); 
        // создаем новую сессию или
        // восстанавливаем текущую
    echo session_id(); 
        // выводим идентификатор сессии
    ?>
    <html>
    <head><title>My home page</title></head>
    ... // домашняя страничка
    </html>
    
    <?
    echo session_name(); 
        // выводим имя текущей сессии. 
        // В данном случае это PHPSESSID 
    ?>



    Создание сессии Синтаксис:
    sеssion_start();

    24. session.save_path

    session.save_path Определяет, где на сервере будут храниться данные сессии

    Сервер Может обрабатывать большое количество сессий одновременно, и все их временные файлы будут храниться в директории, заданной параметром session.save_path


    Из-за него чаще всего возникают проблемы для Windows-серверов, потому что по умолчанию значение установлено в /tmp. И если в корневой директории сервера такой папки нет, то при запуске сессий будет выдаваться ошибка .

    25. session.auto_start

    session.auto_start — Позволяет автоматически запускать сессии

    26. session_start()

    session_start() — Начинает сессию


    session_start()Получив такую команду, сервер создает новую сессию или восстанавливает текущую, основываясь на идентификаторе сессии, переданном по запросу

    session_start()Эту команду нужно вызывать во всех скриптах, в которых предстоит использовать переменные сессии, причем до вывода каких-либо данных в браузер

    27. session_unregister

    session_unregisterСледует использовать unset($_SЕSSION['имя переменной']);
      © INTUIT.ru. Автор: Н.В. Савельева. Курс размещен по договоренности с администрацией INTUIT.ru
    загрузка...
    Теми розділу
    Сторінки, близькі за змістом