OSDN Git Service

BugTrack/480: ディレクトリの設定をpukiwiki.ini.phpに移動
[pukiwiki/pukiwiki.git] / plugin / online.inc.php
1 <?php
2 /////////////////////////////////////////////////
3 // PukiWiki - Yet another WikiWikiWeb clone.
4 //
5 // $Id: online.inc.php,v 1.7 2003/11/05 10:40:48 arino Exp $
6 //
7
8 // user list file
9 define('USR_LST', COUNTER_DIR.'user.dat');
10 // time out sec
11 define('TIMEOUT', 300);
12
13 function plugin_online_inline()
14 {
15         return plugin_online_convert();
16 }
17 function plugin_online_convert()
18 {
19         if (!file_exists(USR_LST))
20         {
21                 $nf = fopen(USR_LST, 'w');
22                 fclose($nf);
23         }
24         CheckUser($_SERVER['REMOTE_ADDR']);
25         return UserCount();
26 }
27
28 function CheckUser($addr)
29 {
30         $usr_arr = file(USR_LST);
31         $fp = fopen(USR_LST, 'w');
32         flock($fp,LOCK_EX);
33         $now = UTIME;
34         for ($i = 0; $i < count($usr_arr); $i++)
35         {
36                 list($ip_addr,$tim_stmp) = explode('|', $usr_arr[$i]);
37                 if (($now - $tim_stmp) < TIMEOUT and $ip_addr != $addr)
38                 {
39                         fputs($fp, "$ip_addr|$tim_stmp");
40                 }
41         }
42         fputs($fp, "$addr|$now\n");
43         flock($fp,LOCK_UN);
44         fclose($fp);
45 }
46
47 function UserCount()
48 {
49         return count(file(USR_LST));
50 }
51 ?>