Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
PHP Поиск
Передача идентификатора сессии
Существуют два метода передачи идентификатора сессии:
- Cookies
- Параметр URL
Модуль сессии поддерживает оба метода. Метод с cookies является оптимальным, но он не всегда доступен. Поэтому PHP предоставляет второй способ, который внедряет идентификатор сессии непосредственно в URL.
PHP умеет преобразовывать ссылки прозрачно. Однако, если вы используете версию PHP младше 4.2.0, вам следует включить эту возможность вручную при сборке PHP. Под UNIX следует передать конфигуратору опцию --enable-trans-sid. Если эта опция сборки и опция времени исполнения session.use_trans_sid включены, в относительные URI будут автоматически добавляться идентификаторы сессии.
Замечание:
Директива arg_separator.output из php.ini позволяет настраивать разделитель аргументов. Для полной совместимости с XHTML следует указывать &.
В качестве альтернативы вы можете использовать константу SID, которая устанавливается при запуске сессии. Если клиентское ПО не хранит подходящую сессионную cookie, SID имеет вид session_name=session_id. В противном случае содержит пустую строку. Таким образом, вы можете в любом случае внедрять его в URL.
Приведенный ниже пример демонстрирует, как зарегистрировать переменную и как правильно построить ссылку на другую страницу, используя SID.
Пример #1 Подсчет количества посещений конкретного пользователя
session_start();
if (empty($_SESSION['count'])) {
$_SESSION['count'] = 1;
} else {
$_SESSION['count']++;
}
Функция htmlspecialchars() может использоваться для вывода SID с целью предотвращения XSS-аттак.
Вывод SID способом, показанном выше, не является обязательным, если опция --enable-trans-sid была использована при компиляции PHP.
Замечание:
Подразумевается, что неотносительные URL указывают только на внешние сайты и потому SID к ним не добавляется, так как это увеличивало бы риски в области безопасности, в частности, риск утечки SID другому серверу.
Смотрите также:
Описание на ru2.php.net
Описание на php.ru