我正在寻找我的答案的解决方案,这是一半完成我必须使用户从我的网站注销,我使用了你的解决方案,这是如下:-
if( $_SESSION['last_activity'] < time()-$_SESSION['expire_time'] ) {
//have we expired?
//redirect to logout.php
header('Location: '.BASE_FULL_PATH.'/user/logout'); //change yoursite.com to the name of you site!!
} else{ //if we haven't expired:
$_SESSION['last_activity'] = time(); //this was the moment of last activity.
}
$_SESSION['logged_in'] = true;
$_SESSION['last_activity'] = time();
$_SESSION['expire_time'] = 24*60*60;这是完美的工作,但我需要有一个提示框,当会议即将expire.Try很多东西,但没有help.Please回复,感谢你的精彩演示
发布于 2013-08-14 16:38:36
我知道,这不是一个有效的方法,但你可以试试这个。试试ajax,它每隔5秒或10秒在服务器上运行一次php文件。
ajax运行的php文件包含会话last_activity和expire_time比较代码,
<?php
$warning=100;
if( $_SESSION['last_activity']+warning < time()-$_SESSION['expire_time'] ) {
?>
<script type="text/javascript">
alert("Your session will expire soon!");
</script>
<?php
}
?>您可以通过设置变量$warning来调整提醒消息的时间。
发布于 2020-09-12 05:22:52
由于您的会话过期时间将在您每次重新加载页面时重置,因此您可以使用过期时间作为JavaScript的setTimeout()函数的时间参数。
var sessionExpiryTime = 24 * 60 * 60;
var sessionExpiryAlertTime = sessionExpiryTime - 5; //assuming we want the alert to show 5 seconds before expiry
setTimeout(function({
alert("Session about to expire!");
}, sessionExpiryAlertTime * 1000); //time is in milliseconds so we multiply by 1000只要用户启用了JavaScript,这就可以正常工作。如果用户重新加载页面,过期计时器将根据您的php代码进行更新,并且setTimeout()函数将重新启动。
https://stackoverflow.com/questions/18226516
复制相似问题