묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
플래쉬카운터 소스를 봐주세요^^
2003.04.16 23:52
아래는 플래쉬 카운터의 소스입니다.
이 카운터를 무지무지 사용하고 싶은데 어디 물어볼 곳도 없고 해서
제가 사용하고 있는 제로보드사이트에 올리면 많은 고수님들이 답변해 주실 거라 믿고 이렇게 올려봅니다.
이놈은 페이지를 새롭게 읽을 때마다 카운터 숫자가 올라간다는 것입니다.
어디를 어떻게 만져줘야 하루에 한번만 올라가게 할 수 있을까요.
아시는 분 계시면 실력을 발휘해서 말씀해주시기를 부탁드립니다.^^
그리고 또 하나는 시차를 7시간 늦출 수 없을까요?
그러면 미리 감사드리며...
<?
###############################################################
##### 플래쉬 카운터 ...
##### 2001년 9월 28일 ...
###############################################################
##### 함수 #####
function result_check($str,$msg) {
if (empty($str)) {
echo "<script> alert('{$msg}'); history.go(-1); </script>";
exit;
}
}
# 파일형식
# 총카운터수:오늘방문자:어제방문자:날짜
##### 환경설정 ######
$filename = "count.txt"; # 카운터 누적데이타 파일..
$cookie = "dogfoot_cookie"; # 사용된 쿠키명..
$lifetime = mktime(12,01,01,11,12,2010); # 쿠키유효기간
#### 파일권한 및 유무 체크 #######
result_check(file_exists ($filename),"카운터정보 파일이 존재하지 않습니다");
result_check(is_writeable ($filename),"카운터정보 파일의 쓰기 권한이 없습니다");
result_check(is_readable($filename),"카운터정보 파일의 읽기 권한이 없습니다");
$fp = fopen ($filename, "r");
result_check($fp,"파일을 읽을수 없습니다");
$info_data = fread($fp,1024);
$info_array = split(":",$info_data);
if (count($info_array) != 4) { // 파일의 내용이 없거나 형식이 일치하지 않아서 초기화시킴..
$total = "000001";
$today = "000000";
$yesday = "000000";
$regdate = date("d/m/Y");
} else {
$total = sprintf("%06d",($info_array[0] + 1));
$today = $info_array[1];
$yesday = sprintf("%06d",$info_array[2]);
$regdate = $info_array[3];
}
fclose($fp);
# 파일에 쓰기
$fp = fopen ($filename, "w");
result_check($fp,"파일의 읽을수 없습니다");
if ($regdate == date("d/m/Y")) $today = sprintf("%06d", ($today + 1));
else {
$yesday = $today;
$today = 1;
}
$write_data = "{$total}:{$today}:{$yesday}:" . date("d/m/Y");
fputs($fp,$write_data);
fclose($fp);
if ($HTTP_COOKIE_VARS[$cookie]) $youcount = $HTTP_COOKIE_VARS[$cookie] + 1;
else $youcount = 1;
$youcount = sprintf("%06d",$youcount );
setcookie("{$cookie}",$youcount,$lifetime,"/");
echo "<embed src='http://www/fc/count.swf?total={$total}&yes={$yesday}&today={$today}&you={$youcount}&load=end&' type='application/x-shockwave-flash' width='150' height='70' wmode='transparent'> </embed>";
?>
이 카운터를 무지무지 사용하고 싶은데 어디 물어볼 곳도 없고 해서
제가 사용하고 있는 제로보드사이트에 올리면 많은 고수님들이 답변해 주실 거라 믿고 이렇게 올려봅니다.
이놈은 페이지를 새롭게 읽을 때마다 카운터 숫자가 올라간다는 것입니다.
어디를 어떻게 만져줘야 하루에 한번만 올라가게 할 수 있을까요.
아시는 분 계시면 실력을 발휘해서 말씀해주시기를 부탁드립니다.^^
그리고 또 하나는 시차를 7시간 늦출 수 없을까요?
그러면 미리 감사드리며...
<?
###############################################################
##### 플래쉬 카운터 ...
##### 2001년 9월 28일 ...
###############################################################
##### 함수 #####
function result_check($str,$msg) {
if (empty($str)) {
echo "<script> alert('{$msg}'); history.go(-1); </script>";
exit;
}
}
# 파일형식
# 총카운터수:오늘방문자:어제방문자:날짜
##### 환경설정 ######
$filename = "count.txt"; # 카운터 누적데이타 파일..
$cookie = "dogfoot_cookie"; # 사용된 쿠키명..
$lifetime = mktime(12,01,01,11,12,2010); # 쿠키유효기간
#### 파일권한 및 유무 체크 #######
result_check(file_exists ($filename),"카운터정보 파일이 존재하지 않습니다");
result_check(is_writeable ($filename),"카운터정보 파일의 쓰기 권한이 없습니다");
result_check(is_readable($filename),"카운터정보 파일의 읽기 권한이 없습니다");
$fp = fopen ($filename, "r");
result_check($fp,"파일을 읽을수 없습니다");
$info_data = fread($fp,1024);
$info_array = split(":",$info_data);
if (count($info_array) != 4) { // 파일의 내용이 없거나 형식이 일치하지 않아서 초기화시킴..
$total = "000001";
$today = "000000";
$yesday = "000000";
$regdate = date("d/m/Y");
} else {
$total = sprintf("%06d",($info_array[0] + 1));
$today = $info_array[1];
$yesday = sprintf("%06d",$info_array[2]);
$regdate = $info_array[3];
}
fclose($fp);
# 파일에 쓰기
$fp = fopen ($filename, "w");
result_check($fp,"파일의 읽을수 없습니다");
if ($regdate == date("d/m/Y")) $today = sprintf("%06d", ($today + 1));
else {
$yesday = $today;
$today = 1;
}
$write_data = "{$total}:{$today}:{$yesday}:" . date("d/m/Y");
fputs($fp,$write_data);
fclose($fp);
if ($HTTP_COOKIE_VARS[$cookie]) $youcount = $HTTP_COOKIE_VARS[$cookie] + 1;
else $youcount = 1;
$youcount = sprintf("%06d",$youcount );
setcookie("{$cookie}",$youcount,$lifetime,"/");
echo "<embed src='http://www/fc/count.swf?total={$total}&yes={$yesday}&today={$today}&you={$youcount}&load=end&' type='application/x-shockwave-flash' width='150' height='70' wmode='transparent'> </embed>";
?>