Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.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/3/apache-spark/6.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
每24小时清理一次php会话_Php - Fatal编程技术网

每24小时清理一次php会话

每24小时清理一次php会话,php,Php,我希望每24小时清理一个会话变量。我不希望杀死或取消设置所有会话。我只希望每天每24小时取消设置一个会话。创建会话时,将时间戳写入其中。然后使用seision检查创建会话的实际时间戳和时间,如果差异大于86400,则删除会话并创建新会话 此解决方案防止用户使用超过24小时的会话。您可以应用其他比较算法,例如防止用户在当天凌晨1点之前使用会话。然后,当您希望在每天凌晨1点每24小时擦除一次会话时,其工作方式将完全相同。创建会话时,请将时间戳写入会话。然后使用seision检查创建会话的实际时间戳和

我希望每24小时清理一个会话变量。我不希望杀死或取消设置所有会话。我只希望每天每24小时取消设置一个会话。

创建会话时,将时间戳写入其中。然后使用seision检查创建会话的实际时间戳和时间,如果差异大于86400,则删除会话并创建新会话


此解决方案防止用户使用超过24小时的会话。您可以应用其他比较算法,例如防止用户在当天凌晨1点之前使用会话。然后,当您希望在每天凌晨1点每24小时擦除一次会话时,其工作方式将完全相同。

创建会话时,请将时间戳写入会话。然后使用seision检查创建会话的实际时间戳和时间,如果差异大于86400,则删除会话并创建新会话


此解决方案防止用户使用超过24小时的会话。您可以应用其他比较算法,例如防止用户在当天凌晨1点之前使用会话。然后,当您希望在每天凌晨1点每24小时擦除一次会话时,将完全相同。

尝试将Cookie过期时间设置为now()+24小时…

尝试将Cookie过期时间设置为now()+24小时…

在客户端上首次创建会话时,只需给它一个日期:

if(!isset($_SESSION['date'])
    $_SESSION['date'] = date('m_d_y');
然后,每当页面更改时,请检查该日期:

if($_SESSION['date'] == date('m_d_y')){
   //still today
}
else {
   //destroy session
}
或者,您可以使用时间戳并根据小时数进行检查:

if(!isset($_SESSION['creationTime'])
    $_SESSION['creationTime'] = time();

if (time() - $_SESSION['creationTime'] <= 60*60*24 ){
   //still today
}
else {
   //destroy session
}
if(!isset($\u会话['creationTime']))
$\会话['creationTime']=time();

如果在客户端上首次创建会话时(time()-$\u SESSION['creationTime'],只需给它一个日期:

if(!isset($_SESSION['date'])
    $_SESSION['date'] = date('m_d_y');
然后,每当页面更改时,请检查该日期:

if($_SESSION['date'] == date('m_d_y')){
   //still today
}
else {
   //destroy session
}
或者,您可以使用时间戳并根据小时数进行检查:

if(!isset($_SESSION['creationTime'])
    $_SESSION['creationTime'] = time();

if (time() - $_SESSION['creationTime'] <= 60*60*24 ){
   //still today
}
else {
   //destroy session
}
if(!isset($\u会话['creationTime']))
$\会话['creationTime']=time();
如果在创建会话(可能在用户登录时)时(time()-$\u SESSION['creationTime']],则声明会话超时:

session_start(); 
$_SESSION["timeout"] = time()+ (60*60*24);
创建后端函数/页面,jquery可以每10秒/5秒调用一次(我将其保存为get_session.php):

jquery脚本每5秒运行一次(建议在页面的母版页/模板页眉/页脚处):


setInterval(函数(){
sessionHeartBeat();
}, 5000);
函数sessionHeartBeat(){
$.ajax({
url:'get_session.php',
成功:功能(响应){
控制台日志(响应);
}
});
}
创建会话时(可能在用户登录时),声明会话超时:

session_start(); 
$_SESSION["timeout"] = time()+ (60*60*24);
创建后端函数/页面,jquery可以每10秒/5秒调用一次(我将其保存为get_session.php):

jquery脚本每5秒运行一次(建议在页面的母版页/模板页眉/页脚处):


setInterval(函数(){
sessionHeartBeat();
}, 5000);
函数sessionHeartBeat(){
$.ajax({
url:'get_session.php',
成功:功能(响应){
控制台日志(响应);
}
});
}


一个会话在哪里?在服务器上?在客户端上?在月球上?一个会话变量还是一个会话?决定:)是什么阻止客户端关闭计算机?一个会话在哪里?在服务器上?在客户端上?在月球上?一个会话变量还是一个会话?决定:)是什么阻止客户端关闭计算机?每24小时!=日期changed@Dvir,是的,但这比每天计算秒要好page@Neal:不,实际上不是,您不必计算它,这是时间的基本值,现在您使用
date
函数从中计算日期,那么您的解决方案是i无效。@Neal,你不必这样做。将创建会话的unix时间戳写入$\u会话['creationTime'],然后检查time()-$\u会话['creationTime']大于60*60*24-如果大于60*60*24,请取消设置所需的变量/整个会话。@Dvir是的,我知道。这只是一种简化的方法。我在回答结束时也有timstamp的想法,每24小时一次!=当日期changed@Dvir,是的,但这比每天计算秒要好page@Neal:不,实际上不是,你不知道不必计算它,这是时间的基本值,现在使用
date
函数从中计算日期,那么您的解决方案效率低下。@Neal,您不必这样做。将创建会话的unix时间戳写入$\u会话['creationTime',然后只需检查time()-$\u会话['creationTime']大于60*60*24-如果大于60*60*24,则取消设置所需变量/整个会话。@Dvir是的,我知道。这只是一种简化的方法。在应答结束时,我也有timstamp的想法。实际上会话是一个cookie,在php.ini中可以设置它的过期时间。如果我没有弄错,它是关于客户端的,会话通过t连接到客户端实际上会话是一个cookie,在php.ini中可以设置它的过期时间。如果我没有弄错的话,它是关于客户端的,会话一般通过cookie连接到客户端。。。