我正在使用Slim3框架进行路由。除此之外,我没有框架。
我的申请以index.php
require __DIR__ . '/../vendor/autoload.php';
// Instantiate the app
$settings = require __DIR__ . '/../src/settings.php';
$app = new \Slim\App($settings);
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
require __DIR__ . '/../src/dependencies.php';
require __DIR__ . '/../src/middleware.php';
require __DIR__ . '/../src/routes.php';
// Run app
$app->run();
正如你所看到的,在任何事情发生之前,我都会非常清楚地开始会议。
在发生所有操作的routes.php
中,我发出请求以查看是否存在$_SESSION['user']
个对象。即使我正在设置它,它总是NULL
。但我知道为什么 - 因为如果我
var_dump((session_status());exit;
总是 = PHP_SESSION_NONE
。
如果我查看浏览器,每次刷新页面时仍然会有相同的PHP会话ID。
我不知道该怎么做。 session_start();
无效。
我在任何地方都可以想到session_start()
。以下是我在User类中设置会话的方法。所以它有效。但是当移动到另一个页面时,$_SESSION['user']
为NULL
private function setSession(){
$_SESSION['user'] = $this;
// var_dump($_SESSION['user']);exit; // prints what you'd expect
return $this;
}