제목 세션을 이용한 현재 접속자 체크 함수
등록자 관리자 등록일시 2003-11-17 조회수 125 HIT
function getDirList ($dirName)
{
$d = dir($dirName);
$Data=array();
$count=0;
while($entry = $d->read()) {
if ($entry != "." && $entry != ".."
&& $entry ="mysql.sock"
&& $entry !="z"
&& $entry !=".font-unix")
{
if (is_dir($dirName."/".$entry)) {
$this->getDirList($dirName."/".$entry);
} else {///echo $dirName."/".$entry."<br>";
$filename=$dirName."/"."$entry";
$fp=fopen("$filename","r");
fseek($fp,$numpoint);
$content=fread($fp,filesize("$filename"));
$length = strlen($content);
$findStart=strpos($content,"회원인덱스기준");
$content=substr($content,$findStart,-70);
if($findStart ){
//echo"<b>$content</b><br>";
$Data[$count].=$content;
$count++;
}
fclose($fp);
}
}

}
$d->close();
return $Data;
}

회원인덱스기준을 맨앞에 일정한 문자를 넣고 이래그로 검색하면됩니다.
예 S_9889
S_8382
이런식으로요
mysql로 회원을 불러서요 그값이
$member=array();
$member[0]="S_1111";
$member[1]="S_2222";


$dirName="/tmp";
$data=getDirList($dirName);
while( list($key,$val) = each($data))
{
while( list($k ,$v )= each($member)){
if( emeg($member,$val))
{
echo"$val";////////현재 접속한사람
}
}
}
//////////////////////////////////////
$member는 물론 로그인시에 세션에 등록되어있어야 한다.

또 다른 방법..

저같은경우는 phpfree 라는 세션을 생성하거든요 카운터 중복을 막으려구

세션 열어보시면 아시겠지만 phpfree로 세션을 생성하면

/tmp 폴더에

sess_25a466fe51c3fe02744c6c9782000fa1

이런 형식의 파일이 생성되고

이 파일을 노바디 권한으로 열어보면

phpfree|i:1;

이런식으로 저장데있거든요

이걸 바탕으로 간단한 소스를 짜보았습니다.

부하는 어떨지 모르겠지만 간단한 개인 홈페이지용으로 써도 좋을듯 하네요

아래는 리눅스용 소스입니다.

-----------------------------------------------------------

<?

$count=0;
$dir=opendir("/tmp");

while($read=readdir($dir)){
if(eregi("^(sess_)",$read)){
// 아래 cat 앞의 ` 이것은 숫자 1 왼쪽 버튼입니다.
if(ereg("^(phpfree)",`cat /tmp/$read`)){
$count++;
}
}
}
closedir($dir);

echo $count;

?>

-----------------------------------------------------------

원리는 간단합니다.

opendir()함수를 이용해서 /tmp 폴더를 오픈합니다.

readdir()함수로 파일이나 디렉토리이름들 가져옵니다.

ereg함수를 써서 sess_ 로 시작하는 파일이면 `cat 파일이름` 이렇게 합니다.

($a=`cat 파일이름`; 이것은 명령을 실행해서 $a변수에 결과를 넣으라는것입니다.)

파일을 열어서 만약 phpfree로 시작한다면 카운터 수를 증가시킵니다.

이렇게 하면 됩니다.^^

목록보기

        X  
11  PHP + JAVASCRIPT 로 해상도 체크  2003-11-17 153
10  MySQL 을 이용한 사용자 인증  2003-11-17 156
9  여러개의 난수를 중복없이 발생시키는 함수  2003-11-17 149
8  가로, 세로 비율 틀려지지 않고 크기에 맞는 썸네일 만들기  2003-11-17 116
7  단일 폼안에 다중 Submit 사용하기  2003-11-17 118
6  업로드 파일 처리 루틴  2003-11-17 120
5  암호화 함수 crypt() 사용예제  2003-11-17 118
4  동일문서내의 php 배열변수를 자바스크립트에서 사용하기  2003-11-17 132
 세션을 이용한 현재 접속자 체크 함수  2003-11-17 125
2  Timestamp 값을 날짜로 변환하기  2003-11-17 125
1  아파치 사용자인증 (User Authentication)  2003-11-17 128
1 2