Я пытаюсь создать систему входа в систему, используя ряд методов и сеансов. Вот как это работает:
call_user_func_array для вызова целевого метода с вновь созданным объектом.UsersController->logIn, этот метод выполняет некоторые проверки, а затем вызывает UsersModel::Condition, который, говоря простыми словами, выбирает пользователя и возвращает объект со свойствами пользователя и несколькими методами.$instanceOfUserRow->LogIn(), который обновляет столбец last_logged этого пользователя, а также создает экземпляр сеанса, выполняющего $_SESSION['user_id'] = $this->user_id.Однако, что бы я ни пытался, он просто не установит переменную сеанса. Я пробовал следующее:
user_id до identifier, до id_test и т. д.UserRow->LogIn, установите его напрямую в UsersController->logIn, что также не сработало.Init.php) под названием test.user_id, что мне показалось странным.session_start, которая была объявлена сразу после Init.php в файле set_session, которая просто взяла имя и значение и установила такой сеанс: $_SESSION[$name] = $value;. Это тоже не сработало.На данный момент я понятия не имею, что делать, я убедился, что сеанс был активен, используя session_status, прежде чем устанавливать любую новую переменную. Классы загружаются с использованием настраиваемой автозагрузки. Я не уверен, что виноват в том, сколько файлов мы пересылаем (исходный запрос был API / логином, затем переписывался на api.php, затем UsersController.php, затем UsersModel.php и затем UserRow.php), или если это может быть просто факт, что он вызывается через call_user_func_array.
Любая помощь или подсказки действительно помогут. Спасибо.
Находится ли сеанс в другом домене от того, где он вам нужен?
Да, как я сказал ранее в этом посте, я даже убедился, что сеанс активен, используя session_status, прежде чем устанавливать новую переменную. Домены такие же.






Оказывается, хотя почти все было одинаково, я запрашивал API с помощью HTTPS, но запрос был сделан со страницы, которая не была поверх TLS.
Таким образом, запросы делались от http://website.lan к https://website.lan/api, и это привело к изменению сеанса между запросами.
Вы вызывали session_start () перед назначением сеанса?