如果是针对单个用户的,在程序中可以这样解决。
你这个变量和变量的最后一次变动时间需要存在数据库中,然后在程序中定时更新。大概思路1.当用用户登录后
读取变量值($autoVar)和最后更新时间($lastTime)并存为session变量2.用户加载任一页面时(包括登录成功后),执行以下操作
//当前操作时间
$nowTime = time();
//计算与上次更新时间的小时差,并取整
$diffHour = intval(($nowTime - $_SESSION['lastTime'])/3600);
//如果大于1小时,则更新
if ($diffHour >= 1)
{
//变量自加 小时数*100
$_SESSION['autoVar'] += $diffHour * 100;
//时间更新 小时数*3600
$_SESSION['lastTime'] += $diffHour * 3600;
//然后将autoVar和lastTime存入mysql中
}
这样用户在线的时会一直更新,如果用户下线了,下一次登录时才更新。
你这个变量和变量的最后一次变动时间需要存在数据库中,然后在程序中定时更新。大概思路1.当用用户登录后
读取变量值($autoVar)和最后更新时间($lastTime)并存为session变量2.用户加载任一页面时(包括登录成功后),执行以下操作
//当前操作时间
$nowTime = time();
//计算与上次更新时间的小时差,并取整
$diffHour = intval(($nowTime - $_SESSION['lastTime'])/3600);
//如果大于1小时,则更新
if ($diffHour >= 1)
{
//变量自加 小时数*100
$_SESSION['autoVar'] += $diffHour * 100;
//时间更新 小时数*3600
$_SESSION['lastTime'] += $diffHour * 3600;
//然后将autoVar和lastTime存入mysql中
}
这样用户在线的时会一直更新,如果用户下线了,下一次登录时才更新。
设置用户的离开时间和登陆时间。都只保留最新。
计算登陆-离开得到的时间值。再计算要增加的变量值,在用户登陆的时候UPDATE;
2)计划任务
同样要设置那两个字段,
只是有个程序一直由系统调用在处理;
LINUX和WIN的自动运行设置不一样,感觉LINUX比较麻烦。