Передача ідентифікатора сесії

Існують два методи передачі ідентифікатора сесії:

  • 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**другому серверу.