передача идентификатора сеанса через URL-адрес

Я пытаюсь заставить свой скрипт использовать идентификатор сеанса url вместо файлов cookie. Следующая страница не отображает переменную в URL-адресе как идентификатор сеанса. Я должен что-то упустить.

Первая страница http://www.website.com/start.php

ini_set("session.use_cookies",0); ini_set("session.use_trans_sid",1); session_start(); $session_id = session_id(); header("location: target.php?session_id=". $session_id ); 

Следующая страница – http://www.website.com/target.php?session_id=rj3ids98dhpa0mcf3jc89mq1t0

 ini_set("session.use_cookies",0); ini_set("session.use_trans_sid",1); print_r($_SESSION); print(session_id()) 

Результат – это другой идентификатор сеанса, и сеанс пуст.

Массив ([debug] => no) pt1t38347bs6jc9ruv2ecpv7o2

будьте осторожны при использовании url для передачи идентификаторов сеанса, что может привести к захвату сеанса через референта!

Похоже, вам просто нужно вызвать session_start () на второй странице.

Из документов:

session_start () создает сеанс или возобновляет текущий на основе текущего идентификатора сеанса, который передается через запрос, например GET, POST или cookie.

РЕДАКТИРОВАТЬ:

Тем не менее, вы также можете попытаться вручную захватить идентификатор сеанса из строки запроса. На второй странице вам нужно будет сделать что-то вроде:

 ini_set("session.use_cookies",0); ini_set("session.use_trans_sid",1); session_id($_GET['session_id']); print_r($_SESSION); print(session_id()); 

Обратите внимание, что функция session_id () будет устанавливать идентификатор, если вы передадите ему идентификатор в качестве параметра.

Вместо 'PHPSESSID' , используйте это:

 session_id($_GET[session_name()]); 

Моя проблема заключалась в использовании Flash в FF (как flash piggy backs IE, поэтому сеансы не распространяются между Flash-объектом и firefox)

Используя php 5.3, все эти ответы указывали на правду. То, что я, наконец, нашел для работы, было довольно простым. Передайте идентификатор в строке запроса. Установить его. Затем начните сеанс.

 session_id($_GET['PHPSESSID']); session_start();