OSDN Git Service

PukiWiki/1.4 first beta release
[pukiwiki/pukiwiki.git] / plugin / online.inc.php
1 <?php
2 // $Id: online.inc.php,v 1.5 2003/01/27 05:38:46 panda Exp $
3
4 // user list file
5 define('USR_LST', 'counter/user.dat');
6 // time out sec
7 define('TIMEOUT', 300);
8
9 function plugin_online_inline()
10 {
11         return plugin_online_convert();
12 }
13 function plugin_online_convert()
14 {
15         global $HTTP_SERVER_VARS;
16         
17         if (!file_exists(USR_LST)) {
18                 $nf = fopen(USR_LST, 'w');
19                 fclose($nf);
20         }
21         CheckUser($HTTP_SERVER_VARS['REMOTE_ADDR']);
22         return UserCount();
23 }
24
25 function CheckUser($addr)
26 {
27         $usr_arr = file(USR_LST);
28         $fp = fopen(USR_LST, 'w');
29         flock($fp,LOCK_EX);
30         $now = UTIME;
31         for ($i = 0; $i < count($usr_arr); $i++) {
32                 list($ip_addr,$tim_stmp) = explode('|', $usr_arr[$i]);
33                 if (($now-$tim_stmp) < TIMEOUT) {
34                         if ($ip_addr != $addr) {
35                                 fputs($fp, "$ip_addr|$tim_stmp");
36                         }
37                 }
38         }
39         fputs($fp, "$addr|$now\n");
40         flock($fp,LOCK_UN);
41         fclose($fp);
42 }
43
44 function UserCount()
45 {
46         return count(file(USR_LST));
47 }
48 ?>