【问题标题】:Auto Logout after session expire会话到期后自动注销
【发布时间】:2015-04-12 20:21:54
【问题描述】:

我在 PHP 网站工作。我想在我的网站中自动注销功能。 基于会话过期的自动注销功能。一旦会话过期注销 自动地。 但我无法确定会话如何过期以及如何注销 会话到期后。 请帮帮我...

【问题讨论】:

  • if(!$_SESSION){ header('Location: logout.php'); }

标签: php


【解决方案1】:

您只需要检查 $_SESSION 的值。如果其值为false,则重定向到注销页面或执行断开用户连接的功能。

【讨论】:

    【解决方案2】:

    在您的会话中保存以下内容。

    您上次执行操作的时间(在下面的示例中,我只是在刷新页面时执行的操作)

    检查这两者之间的差异是否大于您希望自动超时的值。如果是,请参考注销,如果不是,请发送到请求的页面。

    <?php
    session_start();
    if(!empty($_SESSION['user'])) {
        if(isset($_SESSION['activiteit']) && (time() - $_SESSION['activiteit'] > 1800)){
             session_unset();     
             session_destroy(); 
             include_once('inc/admin/login.php');
        } else {
            include_once('inc/admin/adminpanel.php');
        }
    }else{
        include_once('inc/admin/login.php');
    }
    $_SESSION['activiteit'] = time();
    ?>
    

    所以从技术上讲,这里发生的是它从时间变量中减去活动变量。如果差异大于 1800,我将销毁并取消设置会话并将其引用到登录页面。如果没有,我将其提交给管理面板。如果用户根本没有会话用户,那么它会自动参考登录屏幕。

    希望对你有帮助

    【讨论】:

    • 如果它回答了你的问题,请接受它作为正确答案,否则人们可能会认为它还没有解决。
    猜你喜欢
    • 1970-01-01
    • 2020-04-12
    • 2016-11-03
    • 2014-07-08
    • 1970-01-01
    • 2012-06-11
    • 2022-12-22
    • 1970-01-01
    • 2017-09-30
    相关资源
    最近更新 更多