【问题标题】:Issues on expiration of laravel 4.2 sessionlaravel 4.2 会话到期的问题
【发布时间】:2016-01-16 23:13:50
【问题描述】:

在我的登录中,我创建了会话,Session::put('lid','somevalue')Session::put('ltype','somevalue'),在我的默认刀片中我做了类似的事情

@if(Session->has('ltype')
<div>Hello</div>
@else
//redirect to login page

在我的 app/config 中的 session.php 中,我已经将超时更改为 5,即 5 分钟。我计时了,但是当我刷新页面时它已经 8 分钟了,它仍然显示Hello,因为会话已经过期,它应该已经重定向到登录。难道我做错了什么?

【问题讨论】:

    标签: php session laravel laravel-4


    【解决方案1】:

    您可以使用以下代码:

        @if(Session::has('ltype')
            <div>Hello</div>
        @else
    

    您必须使用:: 而不是-&gt;,因为 Session 是一个静态方法。

    【讨论】:

    • 嗨!对不起这是我的错。我这样做了,但不知何故我仍然进入 if 语句
    • 嗯,它确实进入了@else 语句,但有 2-3 分钟的延迟
    • @BourneShady 出于性能目的,不会针对每个请求评估会话以确定它们是否过期。他们使用抽签来确定是否应该进行检查,因此如果您刷新几次,最终将触发垃圾收集器并清理过期的会话。这就是您遇到延迟的原因。您可以在this answer 阅读更多相关信息。
    • 也谢谢你@BourneShady
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 2014-12-31
    • 2015-04-26
    • 2017-01-22
    相关资源
    最近更新 更多