YesYo.com MintState Forums
뒤로    YesYo.com MintState BBS > Tech > PHP
검색
멤버이름    오토
비밀번호 
 

PHP로 카운터 만들기

페이지 정보

작성자 MintState 댓글 0건 조회 11,406회 작성일 08-10-31 11:08

본문

PHP로 카운터 만들기

많은 문제점이 있는 카운터지만 그래도 잘돌아가니 그냥 쓰쎠도 문제 없을 겁니다.
그냥 주석으로만 설명 하겠습니다.
<?php // 아시죠.. PHP의 시작을 알립니다. 
$DataFile="counter.data"; // 햔재 디렉토리의 counter.data 에 저장을 합니다. 
if(file_exists($DataFile)) //counter.data파일이 있나 검사를 합니다 있으면 다음을 시작합시다. 
{ 
	$fp=fopen($DataFile, 'r'); // 파일을 열고 
	$buffer=fread($fp,filesize($DataFile)); //파일을 읽어 들입니다. 
	fclose($fp); //읽은 파일을 닫아야죠.. 
	$Temp=explode("|",$buffer); //파일을 |를 기준으로 나눕니다. 
	$Count=intval($Temp[0]); // 앞쪽에 있는[0]을 Count에 저장 
	$LastIP=$Temp[1]; // 중간에 있는 [1]을 LastIP에 저장 
	$Time=intval($Temp[2]); // 마지막 [2]을 Time에 저장합니다. 
} else { 
	$Count=0; //만약 파일이 없으면 Count는 기본적으로 0으로 
} 

$GetIP=getenv("REMOTE_ADDR"); //현재 접속자의 IP를 읽어 옵니다. 

$AccessTime=$Time+900; //이건 전에 접속한 사용자의 시간에 900초 (15분)을 더합니다. 
$CurrentTime=time(); //현재 시간을 저장합니다. 

if(($GetIP != $LastIP) || ($CurrentTime>$AccessTime)) //만약 바로전에 접속한 IP가 현제 접속한 IP와 
{ //다르면 숫자1증가 또는 같은 IP라도 시간이 15분경과하면 
	$Count=$Count+1; //카운터 증가 
} 

$LastIP=getenv("REMOTE_ADDR"); //현재 접속자 IP저장 이것이 다음번에 마지막 접속자 IP가 됨 
$LastTime=time(); //현재 시간 저장 이것이 다음번에 마지막 접속 시간이 됩니다. 
$fp=fopen($DataFile,'w'); 
fwrite($fp,$Count."|".$LastIP."|".$LastTime); // |를 구분으로 counter.data에 3가지 항목을 저장 
fclose($fp); //물론 파일을 닫아 주고 

$time=getlastmod(); //날짜를 읽어옴 
$UpDate=date('Y/m/d',$time); //날짜를 제가 표시한 XXXX/XX/XX형식으로 저장 

echo "<font face="굴림체" size="2" color="olive">마지막수정일  : $UpDate</font><br>"; 
echo "<font face="굴림체" size="2" color="olive">놀러오신분    : $Count</font>"; 
echo "<br><font face="굴림체" size="2" color="olive">오신분 IP : $LastIP</font>"; 
?>


나머지 부분들은 출력 부분입니다. 적당히 조정하시면 됩니다.

한가지 문제점을 찾았는데 counter.data가 퍼미션 읽고 쓰기가 가능해야 한다는 겁니다.

댓글목록

등록된 댓글이 없습니다.

Total 165건 6 페이지
PHP 목록
번호 제목 글쓴이 조회 날짜
40 MintState 12761 10-31
39 MintState 13534 10-31
38 MintState 11762 10-31
37 MintState 13224 10-31
36 MintState 13962 10-31
35 MintState 11782 10-31
열람중 MintState 11407 10-31
33 MintState 18142 10-31
32 MintState 14809 10-31
31 MintState 12003 10-31
30 MintState 13814 10-29
29 MintState 18144 10-29
28 MintState 12509 10-29
27 MintState 10742 10-29
26 MintState 16653 10-29
25 MintState 13686 10-29
24 MintState 15113 10-29
23 MintState 15035 10-29
22 MintState 15162 10-29
21 MintState 12492 10-29
20 MintState 11361 10-29
19 MintState 11774 10-29
18 MintState 12752 10-29
17 MintState 10852 10-29
16 MintState 10063 10-29
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2024, YesYo.com MintState. ™