Передача ідентифікатора сесії
Існують два методи передачі ідентифікатора сесії:
- Cookies
- Параметр URL
Модуль сесії підтримує обидва методи. Метод із cookies є оптимальним, але він не завжди доступний. Тому PHP надає другий спосіб, який запроваджує ідентифікатор сесії безпосередньо в URL.
PHP вміє перетворювати посилання прозоро. Якщо session.use_trans_sid
увімкнено, всі відносні URI-адреси будуть автоматично містити ідентифікатор сесії.
Зауваження :
Директиваarg_separator.output із php.ini дозволяє налаштовувати роздільник аргументів. Для повної сумісності із XHTML слід вказувати &.
Як альтернативу ви можете використовувати константу SID
, яка встановлюється під час запуску сесії. Якщо клієнтське програмне забезпечення не зберігає відповідну сесійну cookie, SID має вигляд session_name=session_id
. В іншому випадку містить порожній рядок. Таким чином, ви можете у будь-якому випадку впроваджувати його в URL.
Нижче наведений приклад демонструє, як зареєструвати змінну і як правильно побудувати посилання на іншу сторінку, використовуючи SID
Приклад #1 Підрахунок кількості відвідувань конкретного користувача
Loading...
Функцияhtmlspecialchars() може використовуватися для виведення **SID
**с целью предотвращения XSS-атак.
Висновок SID
способом, наведеним вище, не є обов'язковим, якщо опція --enable-trans-sid була використана при компіляції PHP.
Зауваження :
Мається на увазі, що невідносні URL-адреси вказують тільки на зовнішні сайти і тому
SID
до них додається, т.к. це становило б загрозу для безпеки, зокрема ризик витоку **SID
**другому серверу.