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