<?php
function saveUsers($onlineusers_file){
$file_save=fopen("onlineusers.txt","w+");
flock($file_save,LOCK_EX);
for($line=0;$line<count($onlineusers_file);$line++){
fputs($file_save,$onlineusers_file[$line]."\n");
};
flock($file_save,LOCK_UN);
fclose($file_save);
}
$onlineusers_file=file("onlineusers.txt",FILE_IGNORE_NEW_LINES);
if (isset($_POST['user'],$_POST['oper'])){
$user=$_POST['user'];
$oper=$_POST['oper'];
$userexist=in_array($user,$onlineusers_file);
if ($userexist)$userindex=array_search($user,$onlineusers_file);
if($oper=="signin" && $userexist==false){
$onlineusers_file[]=$user;
saveUsers($onlineusers_file);
echo "signin";
exit();
}
if($oper=="signin" && $userexist==true){
echo "userexist please enter other name";
exit();
}
if($oper=="signout" && $userexist==true){
array_splice($onlineusers_file,$userindex,1);
saveUsers($onlineusers_file);
echo "signout";
exit();
}
if($oper=="signout" && $userexist==false){
echo "usernotfound";
exit();
}
}
$olu=join("<br>",$onlineusers_file);
echo $olu;
?>
我已经从网上获取了这个脚本,我想在这里开始和结束会话超时。
答案 0 :(得分:1)
首先,您希望存储会话开始的时间
<?php
$_SESSION['timeout'] = time();
?
然后在另一个请求中检查他们的会话时间(下面的示例基于10分钟),因此如果他们的初始会话被请求超过10分钟,则会话无效。否则它仍然有效
<?php
if ($_SESSION['timeout'] + 10 * 60 < time()) {
// session timed out
} else {
// session ok
}
?>
另请注意:会话超时也取决于您的php.ini。如果ini文件中的值为5分钟,则会话将在5分钟后失效 - 无论您在代码中指定了什么。