我正在尝试使用一系列方法和会话来创建登录系统。这是它的工作原理:
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
的{{1}}文件中的Init.php
之后立即声明,该文件只是取名称和值并设置如下会话:{{1} }。这也行不通。此时我不知道该怎么做,在设置任何新变量之前,我确实使用set_session
验证了会话是否处于活动状态。使用自定义自动加载来加载类。我不确定罪魁祸首是我们分层的文件数量(从原始请求是API /登录,然后重写为api.php,然后是UsersController.php,然后是UsersModel.php,然后是UserRow.php)或者可能只是通过$_SESSION[$name] = $value;
调用它。
任何帮助或潜在客户都会有所帮助。谢谢。
答案 0 :(得分:0)
即使几乎所有内容都相同,我也会使用 HTTPS 查询API,但请求是从未通过TLS的页面发出的。
因此,请求从http://website.lan
发送到https://website.lan/api
,这导致会话在请求之间发生变化。