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

PHP로 카운터 만들기

페이지 정보

작성자 MintState 댓글 0건 조회 11,123회 작성일 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 12237 11-03
39 MintState 12235 10-29
38 MintState 12234 11-12
37 MintState 12174 10-29
36 MintState 12045 10-28
35 MintState 11955 11-03
34 MintState 11852 11-03
33 MintState 11780 10-31
32 MintState 11725 10-29
31 MintState 11702 07-27
30 MintState 11638 02-23
29 MintState 11628 10-29
28 MintState 11517 10-29
27 MintState 11511 10-31
26 MintState 11493 10-31
25 MintState 11414 11-10
24 MintState 11363 11-10
23 MintState 11297 11-03
22 MintState 11205 11-03
열람중 MintState 11124 10-31
20 MintState 11059 10-29
19 MintState 10959 10-29
18 MintState 10859 10-29
17 MintState 10775 10-31
16 MintState 10557 10-29
게시물 검색
모바일 버전으로 보기
CopyRight ©2004 - 2024, YesYo.com MintState. ™