如何在会话过期时自动刷新页面并重定向到登录页面(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();
}