묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
php 카운터의 대한 질문....
2003.11.27 15:20
저기 한가지 물어 볼게 있습니다...
PHP 카운터를 만드는데여. 카운터 증가 방법을 여러가지로 할수 있다고 하는데
익스플로러 창을 닫고 다시 열면 카운터가 증가되게 하려면 어떻게 해야 하나여
이미지 카운터 인데..
답변 부탁드립니다....
소스
<?php
$image_file_count = "./image.dat";
$image_count=0;
$timer=0;
echo("<H2>이미지 카운터 서비스 만들기</H2><P>");
if(!$image_count) {
if($timer>=1) {
SetCookie("image_count","image_count_val", time() + $timer);
}
$file_open = fopen($image_file_count, 'r');
$count = fread($file_open, filesize($image_file_count));
fclose($file_open);
$count+=1;
$str=(string) $count;
for($i=0; $i<strlen($str); $i++) {
$s_str=substr($str, $i, 1);
switch ($s_str) {
case 0:
echo("<img src='./images/0.gif'>");
break;
case 1:
echo("<img src='./images/1.gif'>");
break;
case 2:
echo("<img src='./images/2.gif'>");
break;
case 3:
echo("<img src='./images/3.gif'>");
break;
case 4:
echo("<img src='./images/4.gif'>");
break;
case 5:
echo("<img src='./images/5.gif'>");
break;
case 6:
echo("<img src='./images/6.gif'>");
break;
case 7:
echo("<img src='./images/7.gif'>");
break;
case 8:
echo("<img src='./images/8.gif'>");
break;
case 9:
echo("<img src='./images/9.gif'>");
break;
}
}
$file_open_name = fopen($image_file_count, "w");
fwrite($file_open_name, "$count",strlen($count));
fclose($file_open_name);
}
if($image_count=="image_count_val") {
$file_open_count = fopen($image_file_count, "r");
$count = fread($file_open_count, filesize($image_file_count));
fclose($file_open_count);
$str=(string) $count;
}
?>
<HTML>
<HEAD>
<TITLE>
이미지 카운트 서비스 만들기
</TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>
PHP 카운터를 만드는데여. 카운터 증가 방법을 여러가지로 할수 있다고 하는데
익스플로러 창을 닫고 다시 열면 카운터가 증가되게 하려면 어떻게 해야 하나여
이미지 카운터 인데..
답변 부탁드립니다....
소스
<?php
$image_file_count = "./image.dat";
$image_count=0;
$timer=0;
echo("<H2>이미지 카운터 서비스 만들기</H2><P>");
if(!$image_count) {
if($timer>=1) {
SetCookie("image_count","image_count_val", time() + $timer);
}
$file_open = fopen($image_file_count, 'r');
$count = fread($file_open, filesize($image_file_count));
fclose($file_open);
$count+=1;
$str=(string) $count;
for($i=0; $i<strlen($str); $i++) {
$s_str=substr($str, $i, 1);
switch ($s_str) {
case 0:
echo("<img src='./images/0.gif'>");
break;
case 1:
echo("<img src='./images/1.gif'>");
break;
case 2:
echo("<img src='./images/2.gif'>");
break;
case 3:
echo("<img src='./images/3.gif'>");
break;
case 4:
echo("<img src='./images/4.gif'>");
break;
case 5:
echo("<img src='./images/5.gif'>");
break;
case 6:
echo("<img src='./images/6.gif'>");
break;
case 7:
echo("<img src='./images/7.gif'>");
break;
case 8:
echo("<img src='./images/8.gif'>");
break;
case 9:
echo("<img src='./images/9.gif'>");
break;
}
}
$file_open_name = fopen($image_file_count, "w");
fwrite($file_open_name, "$count",strlen($count));
fclose($file_open_name);
}
if($image_count=="image_count_val") {
$file_open_count = fopen($image_file_count, "r");
$count = fread($file_open_count, filesize($image_file_count));
fclose($file_open_count);
$str=(string) $count;
}
?>
<HTML>
<HEAD>
<TITLE>
이미지 카운트 서비스 만들기
</TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>
대충 원리를 이야기해드리겠습니다.
일단 쿠키를 하나 만듭니다.
위처럼 접속한 익스플로러에 대해서만 증가하지 않게하려면
쿠키에 자폭시간(정확하게 뭐더라;)을 주지 않습니다.
그러면 그 쿠키는 그브라우저(접속한 브라우저와 그 브라우저에서 새창링크로 열린 브라우저도 포함됩니다. 그러나 새로 실행시킨 브라우저는 포함되지않습니다.)가 종료
되지 않는이상 존재하고 종료되면 사라집니다.
만일 어느정도의 시간을 주면 브라우저는 종료되지않더라도
(시간이 지나면)쿠키는 사라지죠.
그런다음
구문 맨앞에 쿠키를 체크해서 (정식은 복잡하지만 쿠키이름이 변수명이 됩니다)
중복방문을 체크하게됩니다 ^-^