Переменные SESSION, не содержащие жира, не доступны глобально - PullRequest
0 голосов
/ 07 июня 2019

Мой сайт использует Fat-free-framework, и я пытаюсь использовать переменные f3 "SESSION" с обработчиком SQL для хранения части пользовательских данных после входа в систему и доступа к ней из другой части приложения. Однако, хотя я вижу, что переменные сеанса были установлены правильно и отображаются в таблице SQL, попытка доступа к ним в другой функции, вызываемой API, просто приводит к пустой строке.

У меня есть функция login (), которая вызывается для входа в систему пользователя, и я пытаюсь сохранить маркер входа пользователя в таблицу сеанса SQL.

new \DB\SQL\Session($f3->get('db'),'sessions',true,function($session){return true;});
$f3->set('SESSION.token',$user->token);

Я могу просто получить доступ к переменной внутри функции login ():

error_log($f3->get('SESSION.token')); // This works

Теперь в другой функции, login_check (), которая вызывается нашим API, я пытаюсь получить токен пользователя из текущего сеанса и использовать его для получения их идентификатора пользователя.

error_log('Found session token: ' . $f3->get('SESSION.token'));
$token = $f3->get('SESSION.token');
error_log($token); // This results in an empty string.

В столбце «данные» таблицы SQL видно, что присутствуют токен пользователя и некоторые другие переменные сеанса, которые я установил. Почему я не могу получить к ним доступ из других мест? Между вызовами двух функций есть несколько перенаправлений, но у меня сложилось впечатление, что переменные SESSION будут сохраняться при переадресации в отличие от стандартных переменных улья.

Я столкнулся с тем же поведением, когда вместо этого использовал стандартный обработчик сеансов PHP, удалив вызов «new \ DB \ SQL \ Session ()» и просто используя $ f3-> set (). Переход на SQL был попыткой исправить это, но я все еще испытываю ту же проблему. Может ли это быть из-за запросов API, которые я выполняю между функциями, или из-за проблемы с конфигурацией сервера? Я был чрезвычайно озадачен этим, любая помощь очень ценится.

...