Я использую Flash Uploader (uploadify, swfupload) с CodeIgniter, хочу получить данные сеанса.Я обнаружил, что флэш-память не отправляет данные сеанса, поэтому я установил $config['sess_match_useragent'] = FALSE;
Теперь, например, я установил значение сеанса myname
в сеансе, и я могу получить его на своем PHP-скрипте бэкэндаиспользуя Internet Explorer .:
Array
(
[session_id] => f4l82aa3f82rd4b2ed682e0e132d7a72
[ip_address] => 127.0.0.1
[user_agent] => Shockwave Flash
[last_activity] => 1310546544
[myname] => test
)
Но проблема в том, что он работает нормально ТОЛЬКО в Internet Explorer .В Internet Explorer session_id
остается одинаковым до и после использования флэш-памяти.Но в Firefox и во всех других браузерах session_id
изменен, и я могу получить только session_id, ip_address, user_agent, last_activity НО , а не myname
.
Array
(
[session_id] => c2cafff6daadc5148e6646s8c4c2aafa
[ip_address] => 127.0.0.1
[user_agent] => Shockwave Flash
[last_activity] => 1310548338
)
Просматривая и задавая предыдущие вопросы по SO, я обнаружил, что, поскольку Flash удаляет данные сеанса, я должен отправить текущий идентификатор сеанса бэкэнд-сценарию, а затем восстановить сеанс, используя этот сеанс.Я БЫ.Таким образом, я устанавливаю session_id с использованием исходного идентификатора сеанса.
$original_session_id = $_REQUEST['session_id'];
$newdata = array(
'session_id' => $original_session_id,
);
$this->session->set_userdata($newdata);
Теперь я вижу, что идентификатор сеанса установлен успешно и он такой же, как предыдущий, но проблема в том, что я все еще не могу получить другойданные сеанса, такие как myname
.Почему это так?Разве я не должен получить это, потому что теперь мой session_id
такой же.Куда поступают данные сеанса и как я могу получить их сейчас?