Принудительно идентифицировать сеанс из запроса - PullRequest
2 голосов
/ 05 сентября 2010

У кого-нибудь есть мысли о том, почему это не сработает?

    if(isset($_POST['PHPSESSID'])) {
session_id($_POST['PHPSESSID']);
session_start();
var_dump($_SESSION);
}

var_dump ($ _ SESSION);всегда пусто!Это должно быть загружено вещами!Существуют ли какие-либо настройки, запрещающие принудительное использование идентификаторов сеансов?Автоматический запуск не включен.

Ответы [ 3 ]

1 голос
/ 05 сентября 2010

Код, который вы разместили, верен. Однако вы можете не видеть переменные в своем сеансе по одной из следующих причин:

  • $_POST['PHPSESSID'] не установлено
  • $_POST['PHPSESSID'] содержит нечисловые символы
  • $_POST['PHPSESSID'] не относится к заполненному идентификатору сеанса
  • session_start() был вызван до вашего звонка на session_id

Если ничего из этого не применимо, я не знаю, в чем проблема, но почему бы вам не попробовать использовать session_name() (который был разработан для того, что вы пытаетесь сделать) вместо session_id?

0 голосов
/ 06 сентября 2010

Возникла проблема с путем сохранения сеанса. Он не был настроен правильно, поэтому я могу предположить, что PHP полагался на файлы cookie браузера для создания сеанса, а не на файлы в пути сохранения сеанса.

0 голосов
/ 05 сентября 2010

Ваш $_POST['PHPSESSID'] должен быть неправильным:

В зависимости от обработчика сеанса не все символы допускаются в идентификаторе сеанса.Например, обработчик файлового сеанса допускает только символы в диапазоне az AZ 0-9, (запятая) и - (минус)

Проверьте егозначение.Если вы изменили обработчик сеанса, вы должны использовать только разрешенные символы для этого конкретного обработчика сеанса.


Ресурсы:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...