현재 접속자 구하기….

모두랑의 PHP 따라잡기 에서 유희찬님이 쓰신글을 옮긴것입니다.

========================================================================

자신의 홈페이지에 현재 접속된 사람이 몇명인지 확인을 하고 싶을 경우가 있다.

아래의 소스는 기존에 다른 프로그래머가 작성한것을 조금 수정한 것이다.

현재 이 홈페이지에서 사용하고 있는 소스이다.

## user.php ##

// 접속 지연 시간 (초)
$w_time = 10;
// 디렉토리 설정
$conuser_dir = “./conuser”;
// 현재 IP를 파일명으로 지정 (쓰기 모드)
$FILE = fopen($conuser_dir . “/” . $REMOTE_ADDR, “w”);
fputs($FILE, “1”);
fclose($FILE);
// 현재 시간을 구한다.
$cur_time = time();
// 총접속자를 0으로 설정
$total_user = 0;

// conuser 디렉토리 오픈
$USER = opendir($conuser_dir);
// 디렉토리에 있는 파일명을 구한다.
while($entry = readdir($USER)) {
// 파일명이 . 이나 .. 인지 확인
if( $entry != “.” && $entry != “..”) {
// 파일이 최종 수정된 시간을 구한다.
$time = filemtime($conuser_dir . “/” . $entry);
// 파일생성시간이 지정된 시간보다 오래되었으면
if( ($cur_time – $w_time) > $time ) {
// 삭제
unlink($conuser_dir . “/” . $entry);
} else {
// 그렇지않으면 카운트를 증가시킨다.
$total_user++;
}
}
}
?>

사용방법은 먼저 conuser 디렉토리를 생성한 후 퍼미션을 707로 설정을 해준다음,
(디렉토리명을 바꾸려면 소스 상단에 있는 $conuser_dir 을 수정해주면 된다.)
메인페이지(index.html 이나 index.php) 상단부분에
include “user.php”; 를 이용해서 포함시켜준다.

그런다음 $total_user 를 메인페이지의 원하는 위치에 출력을 하면 된다.