Slim 3 Session变量不是路由上持久的

时间:2016-12-16 23:52:20

标签: php slim slim-3

正如标题所示,我无法让我的会话变量在路由上持久存在。

我在session_start()的非常开头致电index.php

根路线:

$app->get('/', function (Request $request, Response $response) {
    $this->logger->addInfo("session id: " . $_SESSION['cus_id']);

    $response = $this->view->render($response, "homepage.phtml", [
        'test' => 'testing something',
        'logged_in' => isset($_SESSION['cus_id'])
    ]);

    return $response;
});

在我的app.log中,我看到会话变量不存在。

但是这是我成功登录后的代码:(发布到/登录)

if ($customer !== false && password_verify($password, $customer['password'])) {
        $_SESSION['cus_id'] = $customer['id'];

        return $this->view->render($response, "homepage.phtml", [ 'logged_in' => true]);
    }

我还在这里使用记录器进行测试,它向我显示它保存了正确的ID。

我还使用了具有完全相同结果的各种额外库。 我也检查了官方文档,但没有用。

问题: 如何让会话变量在整个路由中保持持久性? 或者是另一种保存会话的方法?和/或解决此登录问题的其他方法?

1 个答案:

答案 0 :(得分:0)

升级服务器后,我遇到了同样的问题,导致php.ini文件中出现了新的服务器设置。 对我来说,php.ini中的 session.auto_start = 1 就行了。