Не удается получить доступ к данным сеанса - PullRequest
1 голос
/ 23 декабря 2011

В моем проекте я пытаюсь получить доступ к данным сеанса из 2 файлов, расположенных в 2 разных каталогах:

/site/page.extension.php     <-- initializes the session and writes data to it
                               - also sets a cookie with session_id() and session_name()
/extension/ajax_handler.php  <-- tries to access the session data, session_id()
                               - and session_name() are set via cookie and return the correct values

Теперь моя проблема в том, что хотя session_id () и session_name () одинаковы в обоих файлах, я не могу получить доступ к массиву сессии, он просто возвращает пустой массив.

Мой код: page.extension.php:

session_start();
setcookie("psc_session", session_id(), strtotime("+20 minutes"), "/");
setcookie("psc_session_name", base64_encode(session_name()), strtotime("+20 minutes"), "/");
$_SESSION['uid'] = system::current_user_id();

ajax_handler.php:

session_id($_COOKIE['psc_session']);
session_name(base64_decode($_COOKIE['psc_session_name']));
session_start();
print_r($_SESSION); // => array(0) { }

Буду очень признателен за любую помощь! Привет!

Обновление: Я попытался установить параметры cookie сессии, используя это в page.extension.php:

$url = str_replace("http://", '', current_url(false));  // returns the current domain
session_set_cookie_params(10800, "/", $url, 0, 1);

Если я сейчас получу доступ к session_get_cookie_params, я получу (в ajax_handler.php):

print_r(session_get_cookie_params()); // =>
Array
(
    [lifetime] => 0
    [path] => /
    [domain] => 
    [secure] => 
    [httponly] => 
)

Почему это происходит?

1 Ответ

0 голосов
/ 23 декабря 2011

Я не могу воспроизвести вашу проблему, воссоздав код, который вы указали для переменных сеанса, и файлы cookie остаются нетронутыми и доступны из ajax_handler.php.Я бы посоветовал вам вернуться назад и убедиться, что оба файла запрашиваются с одного домена.

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