Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在会话过期时自动刷新页面并重定向到登录页面(PHP)_Php_Session_Login_Reload_Logout - Fatal编程技术网

如何在会话过期时自动刷新页面并重定向到登录页面(PHP)

如何在会话过期时自动刷新页面并重定向到登录页面(PHP),php,session,login,reload,logout,Php,Session,Login,Reload,Logout,请原谅,我知道有一些关于堆栈溢出的问题,但是我没有找到任何适合我的问题的解决方案。我有一个问题,当会话过期时,页面不会自动重新加载。请帮忙。非常感谢。任何帮助都将不胜感激 这是我尝试过的代码,$\u SESSION['created']=time() 根据您的需要,一旦会话在服务器端有效或无效,您必须每秒钟检查一次会话,所以请执行以下操作 1) 创建了javascript和ajax,用于检查服务器端会话是否过期,每秒钟检查一次 2) session.php页面以检查是否有效会话 3) 然后根据触

请原谅,我知道有一些关于堆栈溢出的问题,但是我没有找到任何适合我的问题的解决方案。我有一个问题,当会话过期时,页面不会自动重新加载。请帮忙。非常感谢。任何帮助都将不胜感激

这是我尝试过的代码,
$\u SESSION['created']=time()


根据您的需要,一旦会话在服务器端有效或无效,您必须每秒钟检查一次会话,所以请执行以下操作

1) 创建了javascript和ajax,用于检查服务器端会话是否过期,每秒钟检查一次

2) session.php页面以检查是否有效会话

3) 然后根据触发location.reload()函数的值返回1或-1,它会自动移动到logout.php,因为您的最高条件现在变为true

session.php

        <?php

            session_start();


            if(!isset( $_SESSION['created'] ) || (time() - $_SESSION['created']) > 600) {

                session_destroy();

                echo "-1";

            } else {

                echo "1";

            }

        ?>

根据您的需要,一旦会话在服务器端有效或无效,您必须每秒钟检查一次会话,所以请执行以下操作

1) 创建了javascript和ajax,用于检查服务器端会话是否过期,每秒钟检查一次

2) session.php页面以检查是否有效会话

3) 然后根据触发location.reload()函数的值返回1或-1,它会自动移动到logout.php,因为您的最高条件现在变为true

session.php

        <?php

            session_start();


            if(!isset( $_SESSION['created'] ) || (time() - $_SESSION['created']) > 600) {

                session_destroy();

                echo "-1";

            } else {

                echo "1";

            }

        ?>

删除url参数头中的单引号(“Refresh:1;url=logout.php”);当您在会话过期时导航所有页面时,将此代码放入所有页面顶部,这意味着它将重定向到注销。php@JYoThI不是这样,当会话过期时,它应该自动重定向到登录页面。@JYoThI甚至认为我在同一页面上,如果会话已过期,则应将其重定向到登录页面删除url参数头中的单引号(“Refresh:1;url=logout.php”);当您在会话过期时导航所有页面时,将此代码放入所有页面顶部,这意味着它将重定向到注销。php@JYoThI不是这样,当会话过期时,它应该自动重定向到登录页面。@JYoThI甚至认为我在同一页面上,它应该重定向到登录页面,如果会话是有效的,谢谢你的工作,但我有一个小问题,如果有人停留在同一页上,没有导航到其他页面或重新加载页面,它被认为是闲置的。除非他导航到任何其他页面,否则会话不会过期。不,在所有情况下,会话都会正常工作。因为javascript每秒钟检查一次会话是否过期意味着它将使用location.reload()重新加载当前页面;所以页面自动重新加载,现在如果条件变为真,页面重定向到logout.php,你明白吗?我尝试过Jyothi,面对这个问题,这就是我提到的原因。你有没有收到过这个警报(“你的会话已过期!”);警惕@e-Designary,但逻辑对我来说很好这就是为什么我建议你,只有当我停留在索引页而没有导航到任何其他页面时,我才不会得到警报()。在其他情况下,这是我唯一面临问题的情况。谢谢你,它起作用了,但我有一个小问题,如果有人停留在同一页面而不浏览其他页面或重新加载页面,则认为是空闲的。除非他导航到任何其他页面,否则会话不会过期。不,在所有情况下,会话都会正常工作。因为javascript每秒钟检查一次会话是否过期意味着它将使用location.reload()重新加载当前页面;所以页面自动重新加载,现在如果条件变为真,页面重定向到logout.php,你明白吗?我尝试过Jyothi,面对这个问题,这就是我提到的原因。你有没有收到过这个警报(“你的会话已过期!”);警惕@e-Designary,但逻辑对我来说很好,这就是为什么我建议你,只有当我停留在索引页上而没有导航到任何其他页面时,我才不会得到警报()。在其他情况下,这是我唯一面临问题的情况。
        <script type="text/javascript">

                function session_checking()
                {
                    $.post( "session.php", function( data ) {

                        if(data == "-1")
                        {
                            alert("Your session has been expired!");
                            location.reload();
                        }

                    });
                }

                var validateSession = setInterval(session_checking, 1000);

    </script>
if(!isset( $_SESSION['created'] ) || (time() - $_SESSION['created']) > 600)   {
header("Refresh: 1;url=logout.php");
} else {
$_SESSION['created'] = time();
}