2016-11-24 17 views
-2
<?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

對不起,我必須寫這個「z」因爲它沒有提交 –

+0

所以,到目前爲止,你有什麼嘗試過自己? –

+0

我試圖用if循環開始和結束會話,但它不能正常工作 –

回答

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分鐘後失效 - 無論您在代碼中指定什麼。