CountRefer - 블로그용 개별 엔트리 카운터와 레퍼러 

Simple View | Forum View

설치용 블로그에 이용할 수 있는 Counter/Referer Logger 입니다. 인덱스 페이지나 블로그의 개별 엔트리 페이지에 각각 카운터와 레퍼러를 달 수 있는 스크립틉니다. todaylink인가 하는 레퍼러를 설치하려고 했는데, 제대로 잘 되지 않아서 포기하고 있다가 내친 김에 좀더 입맛에 맞게 만들어 본겁니다.

무버블타입 블로그에 적용했지만, 딱히 블로그툴에 구애 받지 않습니다. 개별 엔트리 페이지의 고유번호, 가령 무버블타입의 경우 엔트리 아이디(entry id)를 매 페이지 카운터/레퍼러를 구별하는 수단으로 이용하는데, 다른 블로그툴에서도 개별 글에 고유한 번호를 매기는 방식이면 적용가능 합니다. 왼쪽 사이드바의 Visitors 링크를 열면, 여러 모드의 레퍼러 리스트를 볼 수 있습니다.

1. 개괄

  • 오늘의 접속자/총 접속자, 가장 많이 본 글/최근에 클릭한 글 표시 가능
    카운터의 경우, 개별 페이지에 대한 오늘의 접속수와 총 접속수만을 표시합니다. 아울러 전체적인 몇몇 통계를 표시해 줄 수 있는데, Top 10 과 Recent 10이 그것입니다. 개별 페이지에 대한 히트수를 트랙해 나가기 때문에 현재까지 가장 많은 조회수 순의 Top N(설정 가능)의 엔트리를 인덱스 페이지 등에 나타내 줄수 있습니다. 또 최근에 히트된 Recent N 개의 엔트리도 표시해 줄 수 있습니다. 다른 카운터에선 보기 힘든 고유한 특징이 아닐까 합니다.
  • 검색결과 페이지로 접근시 한글 코드에 맞춰 키워드 표시
    Referer(웹 페이지에 어떤 서버를 통해 접속했나 표시해 주는 것)를 표시함에 있어서, 구글/야후 등의 검색 사이트를 통해 검색에 의한 결과페이지로 접속하는 경우에 해당 검색어를 표시해 주는데, 이것이 한글의 특성상 EUC-KR과 UTF-8로 매 엔진마다 동시에 운영되는 경우가 많습니다. 이때 키워드의 인코딩을 포착해서 자신의 페이지설정과 맞는 포맷으로 바꿔서 표시하는 데 있어 코드변환 모듈이 필요한 것입니다. 고로 이젠 검색어가 깨져 나타나는 일은 피할수 있게 됬습니다.
  • 두가지 레퍼러 리스트 뷰 모드
    레퍼러의 경우엔, 기존에 사용되던 레퍼러(todayslink ? )는 매 엔트리 페이지마다 기본적으로 모든 레퍼러를 링크까지 살려서 모두 표시하고 있습니다. 전 이 부분이 매우 오버로드된 기능이라 보고 최근의 N개의 레퍼러만을 디폴트로 표시해주고, 해당 페이지의 전체 레퍼러 리스트는 별도의 클릭(제 경우엔 Visitors라는 이름으로)으로 보고 싶을 때만 자세히 볼 수 있도록 디자인 했습니다. 레퍼러 정보는 방문객보다는 블로그 주인의 입장에서 더 유용한 정보이므로 가급적 일방적인 노출을 자재하는 의미입니다. 시간순과 접속 횟수순에 의한 두가지 뷰모드(View mode)로 레퍼러 리스트를 볼 수 있습니다.
  • 다양한 검색 엔진 쿼리문 확장 가능
    레퍼러에서 검색엔진을 통한 검색키워드 산출 부분을 좀더 확장가능하도록 디장인했습니다. 현재는 물론 앞으로도 아주 다양한 수의 검색엔진이 나올것이고 이에 대한 검색 Query URL을 다 하드코딩하는 것은 불가능합니다. 이에 소스 내에서 향후 자신의 블로그에서 발견되는 검색엔진의 쿼리 부분을 입력함으로서 모든 검색엔진에서 다 키워드를 구해낼수 있도록 했습니다.
  • 레퍼러 스팸 대책
    레퍼러 스팸에 대한 대책이 포함되어 있습니다. 레퍼러 스팸이 그리 기승을 부리는 단계는 아니고 또 앞으로도 코멘트나 트랙백 스팸에 비해 상대적으로 약할 것이지만, 분명 레퍼러 스팸도 존재하므로 이에 대한 간단한 pre/post 방식의 대책을 마련했습니다. 레퍼러 스팸이 코멘트/트랙백 스팸에 비해 강력하진 못하지만 효과에 비해 그 적용이 매우 쉬우므로 레퍼러 구현에선 생각해야 된다고 봅니다.
    레퍼러 스팸이란 말그대로 별도의 부가적인 정보없이, 레퍼러를 표시해주는 사이트 혹은 표시하지 않더라도 웹서버의 로그상에 주소만을 남길 목적으로 그냥 로봇에 의해 GET리퀘스트만 주구장창 보내는 것입니다. 다른 스팸처럼 어떤 사이트 고유의 FORM양식이나 트랙백 양식에 맞출 필요가 없기 때문에 스팸 중에선 가장 손쉬운(그러므로 효과는 제일 떨어지는) 방법입니다.

    별도의 스팸리스트 파일에 제거 또는 기록 방지를 원하는 사이트의 이름을 패턴을 이용해 기록해주면 그 이후 그 사이트 이름을 가진 레퍼러주소는 기록되지 않습니다. 또 이미 레퍼러가 여러 파일에 다수 기록이 된 상태라면 별도의 메뉴를 통해 일괄 삭제할 수도 있습니다.

2. 다운로드 & 설치

  1. 다운로드를 눌러 CountRefer.tar.gz 파일을 받은 후,  자신의 서버계정에 업로드합니다.
  2. 자신의 블로그 폴더 아래에 logs 등 적당한 이름으로 폴더를 만들고 압축 파일을 그곳으로 옮깁니다. ( 이하 blog/logs/ 폴더 아래에 설치하는 것으로 가정합니다.)
  3. $ tar xvfz CountRefer.tar.gz 를 통해, 압축파일을 /logs 아래에 풉니다. 위 명령은 /logs 아래에서 실행되는 것입니다.
  4. $ chmod +x *.cgi 명령으로 모든 CGI 파일들의 퍼미션에 실행옵션을 줍니다.
  5. logs/counts/ 와 logs/refers/ 폴더도 같이 생성이 되어 있는지 확인합니다. 만약 없다면 만들어 줍니다.

3. 설치 확인

http:// my_domain_com/blog/logs/check.cgi 를 브라우져의 주소창으로 띄워봅니다. 
필요한 모듈이 설치되어 있는지, counts/와 refers/ 폴더가 생성되어 있는지, 그리고 각 폴더 아래에 파일이 쓰여질 수 있는지 검사하는 CGI입니다.

CGI is installed.
DB_File is installed.
Fcntl is installed.
Encode is installed.
Encode::Guess is installed.
URI::Escape is not installed.
LWP::UserAgent is not installed.

counts/ ... OK!
     Writing Test ... OK!
refers/ ... OK!
     Writing Test ... OK!

먼저 아래의 counts/ refers/ 에 대한 값이 모두 OK가 되지 않는다면, 해당 폴더에 쓰기 권한이 있는지 체크하시고 없다면 권한을 주십시요. ( $ chomd +w refers/ counters/ )

만약 설치되지 않은 모듈이 나타나면, 서버 관리자에게 설치를 요청하십시요. 위 모듈들은 특수한 모듈이 아닌 거의 기본적인 모듈들이므로 시스템차원의 설치가 당연하다 봅니다.

 무버블타입 블로그 사용자의 경우, URI::Escape나 LWP::UserAgent 모듈이 만약 설치되지 않은 것으로 나타난다면, 아래와 같이 대처하십시요.
check.cgi를 열어 보시면, #use lib (...) 이라는 주석문이 보입니다. 무버블타입의 경우 mt/extlib/ 아래에 위 두 모듈이 설치되어 있습니다. 고로 시스템차원으로 잡히지 않는다면 위 폴더를 라이브러리 목록에 추가해주면 됩니다. 주석(#)을 지우시고 use lib('/home/..../mt/extlib'); 식으로 extlib 폴더까지의 절대경로를 적어주신후 다시 check.cgi를 해보십시요. 문제가 없으면, ref-log.cgi와 ref-list.cgi에도 위의 use 문으로 수정해 주시면 됩니다.
 

4. 설정

  • logs/CountRefer.pm 파일을 열고 자신에 맞게 값을 수정해 줍니다.
  • 아래 값에서 노란 부분만이 "필수" 변경값입니다. 나머지는 디폴트로 사용해도 상관없습니다.
     
    ### #######################################################
    # For Counter
    #
    $myCGIURL = '/blog/logs/';                                  
    $myBlogDomainName = 'mydomain.com';    
     
    $countDir = 'counts/';                                             
    $mostMax = 10; 
    $recentMax = 10;
    $myCookieLifeTime = '+1h';
    ### #######################################################
    # For Referer
    #
    $my_password = '1234';
    %engine = (
     "Google" => "p|q",
     "Daum"  => "q",
     "Yahoo"  => "p" 
    );
    $referDir = 'refers/';   
    $my_encoding = 'utf-8';
    ### #######################################################
     
  • $myCGIURL : 은 웹루트에서부터 logs/ 까지의 경로를 적습니다. 반드시 경로끝에 '/'를 붙여야 합니다.
  • $myBlogDomainName : 자신의 도메인네임입니다. 반드시 www. 를 뺀 이름이어야 합니다. 만약 자신의 도메인이 www.myblog.com 또는 myblog.com 둘 다 가능한 경우 myblog.com으로 입력해야 합니다.
  • $my_password : 레퍼러 스팸을 제거하고자 할때, 아무나 아무 주소값으로 지울 수 있으면 안되기 때문에 있는 값입니다.
     서버의 각종 소스에 하드코딩하는 비밀번호는 가능하면 호스팅받는 서버의 비밀번호랑 일치시키는 것이 좋습니다. 서버상의 소스에 하드코딩하는 비번은 서버운영자에게만은 투명한 값이기 때문입니다.
  • $my_encoding : 자신의 블로그 인코딩 값으로 해주면 됩니다.
     
    아래 나머지 값들은 선택적 사항들입니다.
     
  • $countDir , $referDir : 설치시에 만들어준 폴더명입니다. 사실 바꿔줄수 있지만, 디폴트를 사용한 것입니다.
  • $mostMax, recentMax : 카운터사용시, 메인인덱스페이지에 조회수 Top N, 최근 조회 N 리스트를 삽입코자 할때 그 N 의 값을 설정하는 것입니다.
  • $myCookieLifeTime : 카운터 적용시, 해당 페이지에 기본적으로 +1h(한시간)동안 재접근시 카운팅을 하지 않습니다. 즉 해당 카운터값이 저장된 쿠키가 1시간동안 살아 있기때문입니다. '+33m' 은 33분을 의미합니다.
  • %engine : 이 부분은 일단은 디폴트 값으로 사용합니다. 자세한 설명은 뒤에 합니다.

5. 템플릿에 카운터 삽입

개별 엔트리(글) 페이지에 카운터 삽입

  • <script type="text/javascript" src="/blog/logs/cnt-log.cgi?eid=페이지고유숫자ID&et=페이지제목&el=페이지주소"></script>
    이때 제목과 주소까지 넘기는 이유는 Top10/Recent10 리스트 사용을 위함입니다.
  • 일반적인 블로그 시스템에선 해당 개별 엔트리 템플릿의 적당한 위치에 ID/제목/주소를 나타내는 태그값을 삽입해주면 됩니다.
  • 무버블타입의 경우, 아래와 같은 태그로 표현됩니다.
    <script type="text/javascript" src="/blog/logs/cnt-log.cgi?eid=<$MTEntryID$>&et=<$MTEntryTitle encode_url="1"$>&el=<$MTEntryPermalink encode_url="1"$>"></script>
  • 이때 중요한 점은 위 태그값에서 보듯이 제목과 주소값을 반드시 URL Encoded된 형태로 보내야 한다는 점입니다. 아마 다른 블로그 시스템상에서도 태그에 저런 옵션이 있을거라 봅니다.

메인 인덱스 파일 등에 카운터 삽입

  • 이 경우가 개별 엔트리파일과 다른 점은, 이런 파일들은 고유한 숫자에 의한 식별자가 없다는 점입니다. 단지 파일 이름에 의해 구분될 뿐인 것들입니다. 대문 페이지나 각종 아카이브 리스트 페이지 등이 그 예입니다.
  • 또 다른 차이점은 이런 페이지의 카운터는 Top N/ Recent N 추적에서 제외된다는 점입니다. 그 이유는 Top N 등의 적용이유는 자신의 글들중에 어떤 글이 가장 주목받는가 하는 것을 표시하기 위함인데, 그 특성상 블로그의 대문페이지 index.html 등이 시간이 흐른 후에는 항상 Top의 클릭을 가질 가능성이 크기 때문입니다. 고로 이런 저런 이유로 고유한 번호에 의해 구분되어지는 개별 엔트리 페이지가 아닌곳에 삽입하는 카운터는 Top/Recent 추적에서 제외했습니다.
  • 따라서,
    <script type="text/javascript" src="/blog/logs/cnt-log.cgi?eid=페이지이름"></script>
  • 예를 들어, 메인 인덱스 페이지에 삽입하는 경우 임의의 구분짓는 이름을 이용해,
    <script type="text/javascript" src="/blog/logs/cnt-log.cgi?eid=main-index"></script>처럼 표시하면 됩니다.
    <script type="text/javascript" src="/blog/logs/cnt-log.cgi?eid=category-archives"></script>
    <script type="text/javascript" src="/blog/logs/cnt-log.cgi?eid=monthly-archives"></script>처럼 숫자 형식의 고유번호가 없는 페이지는 그냥 적당히 구별지을수 있는 공백없는 문자열로 표시하면 됩니다.

6. 템플릿에 레퍼러 삽입

  • <script type="text/javascript" language="Javascript">
    document.write("<script type='text/javascript' src='/blog/logs/ref-log.cgi?eid=페이지고유번호&list=1&n=5&cssid=indiv-refer&ref=" + escape(document.referrer) + "'>");
    document.write("</");
    document.write("script>");
    </script>
     
  • 위 스크립트를 레퍼러를 나타낼 적당한 위치에 삽입합니다.
    eid=페이지고유번호, 무버블타입의 경우 <$MTEntryID$>를 넣습니다. 태그값에 의한 고유한 번호가 없는 메인 인덱스 등의 페이지일 경우엔 임의의 문자, eid=main-index 식으로 표시하면 됩니다.
    list=1, n=5 면 최근 접근한 레퍼러를 다섯개 표시합니다. list=0 이면 레퍼러를 화면에 표시하지 않습니다.(화면에 디폴트로 표시하지 않을 뿐이므로, Visitors 링크를 통해 볼 수 있습니다.)
    cssid=indiv-refer 이 인자는 레퍼러 리스트를 n개 표시할 때 <ul></ul> 태그로 출력하는데 이때 <ul id="indiv-refer"> 로 나타냅니다. 자신의 CSS 파일에 .indiv-refer {...} 를 넣어서 출력 리스트의 모양을 디자인할 수 있습니다.

7. 기타 (적용 후, 시간날 때 보는 내용)

스팸 레퍼러 관리

  • 레퍼러 리스트를 시간/히트수에 따라 보여주는 페이지에 Delete Referring Spam 이라는 링크가 있는데 이를 선택하면, 자신의 레퍼러 저장파일에서 해당 패턴을 가진 주소를 일괄 삭제할 수 있습니다.
  • 이때 등록된 레퍼러 스팸 주소는 향후 접근하는 레퍼러 기록시 스팸으로 인식, 저장하지 않고 패스하는 역할도 합니다.
  • Spam Lists 에 매 줄마다 하나씩의 스팸 주소를 넣으면 됩니다. 이 주소는 정확한 매칭에 의한 검색이 아니라, 부분 매칭입니다. 즉, casino라고 적으면 도메인 명에 casino가 들어가는 모든 주소를 스팸으로 인식하는 형태입니다. 예를 들어 ref-spam.com 이라고 적으면 www.ref-spam.com은 스팸으로 인식하지만, ref-spam.co.kr은 아닙니다.
  • Delete from *.ref 체크박스는, 기본적으로 어떤 페이지의 Visitors를 클릭해 스팸을 지우는 화면으로 들어올 때는, 그 페이지의 레퍼러 기록에서만 스팸주소를 지웁니다. 만약 이 체크박스를 선택하고 Delete Spams 버튼을 누르면, 모든 레퍼러 저장 파일을 다 뒤져서 지웁니다.
  • Password : 설정 파일에서 정한 비밀번호를 입력해야 삭제가 이루어집니다.
  • 루틴 내부적으로 최소 3자 이상의 주소 패턴입력만 허용합니다. ref-delete-spam.cgi 의 my $minimumDomainNameLength = 3; 값으로 내부적으로 설정합니다. 3자 이상으로 한 이유는 sex라는 단어때문입니다. 그리고 만약 실수로 2자를 어떻게 입력후 Delete를 하게 되면, 스팸이 아닌 많은 주소가 삭제될 가능성이 있기 때문입니다.

특수한 경우의 레퍼러 적용

  • 예를 들어, 자신의 도메인에 여러개의 블로그가 있는 경우를 가정해, mydomain.com 밑에 /alog /blog /clog라는 세개의 블로그 혹은 다른 여타 포럼/게시판 등이 있고, mydomain.com/index.html 을 일종의 포털 형식으로 이곳에서 각각의 블로그를 선택해 접근하는 구조를 생각해 보면(현재 http://alogblog.com 이 그런 전형적인 그런 식입니다.), /blog 밑의 메인 인덱스 페이지에 달린 레퍼러의 경우, 자신의 포털(mydomain.com/index.html)을 통해 /blog 로 접근한 경우 레퍼러의 값이 항상 자신의 도메인 네임일수 밖에 없습니다.
    당연히 레퍼러가 자신의 도메인이면 레퍼러 기록을 하지 않기 때문에, /blog/index.html 로 직접 접근한 경우는 레퍼러 카운팅이 되지만, 상위 웹루트(포털)를 통해 선택해서 들어온 경우는 레퍼러가 묻혀 알수가 없게 되는 현상이 생깁니다.
    혹 이와 같이 운영하는 사이트에 대한 대비책입니다. 만약 자신의 도메인에 블로그가 하나뿐이고 어떤 식으로 접근하던 /blog/index.html 로 바로 접근하는 방식이라면 필요없는 사항입니다.
  • mydomain.com/blog/index.html 에 삽입하는 부분입니다.
    <script type="text/javascript" language="Javascript">
    var ref = getCookie('ref');
    if(ref) {
      document.cookie = 'ref=;path=/';
    } else {
      ref = document.referrer;
    }
    document.write("<script type='text/javascript' src='/alog/logs/ref-log.cgi?eid=main-index&list=1&n=5&cssid=main-refer&ref=" + escape(ref) + "'>");
    document.write("</");
    document.write("script>");
    </script>
  • 위처럼 수정된 부분이 블로그 메인인덱스 페이지에 삽입되면 됩니다. 그리고 mydomin.com/index.html (포털페이지의 인덱스)에서는
    <script type="text/javascript">
    document.cookie = "ref=" + escape(document.referrer) + ";path=/";
    </script>
    를 삽입해 줍니다.
  • 설명하자면, 포털(mydomain.com/index.html)로 먼저 접근한 경우 ref라는 값으로 레퍼러를 쿠키에 저장합니다. 그리고 하위 블로그의 메인인덱스에선 ref라는 쿠키값이 설정되어 있나 체크해서 있다면, 그것은 포털을 통해 들어온 것이므로 ref값을 이용해 기록하고, 없다면 바로 접근한 것이므로 documnet.referer값을 직접 CGI로 넘기는 구조입니다.
  • 위에서 getCookie()는 블로그툴에서 제공하는 자바스크립트 함수를 이용한 것입니다. 무버블타입의 경우 쿠키값을 얻는 함수가 getCookie()입니다. 다른 블로그툴에서도 비슷한 함수가 사용되리라 봅니다.

확장 가능한 검색 엔진 Query 

  • 확장 가능한 검색 엔진 Query  란 ?
    레퍼러 주소 리스트를 보다보면, 일반 사이트에서 접근한 주소가 아니라 검색 엔진을 통해 접근한 듯한 주소를 볼 수 있습니다. 이 부분을 특별히 따로 취급하는 이유는 자신의 해당 페이지에 어떤 검색 키워드로 접근하는지 알 수 있는 정보가 되기 때문입니다. 현재 디폴트로는 설정 파일에서 본 대로 Google, Daum, Yahoo 세가지 검색 엔진만 등록이 되어 있습니다. 고로 위 세 엔진의 검색결과 페이지로 접근했을 경우엔, 그 검색키워드가 나타납니다. 하지만 현재도 그렇고 앞으로 조금만 내다봐도 수없이 많은 크고 작은 검색엔진이 존재하고 생길 것은 자명합니다. 이에 대해서도 키워드를 캐치하기 위한 방법입니다.
  • 레퍼러 주소 리스트를 보다 아래와 같은 검색엔진을 통해 접근한듯한 주소를 봤다 가정합니다.
    http://search.empas.com/search/all.html?a=w&s=&f=&z=A&q=%BA%ED%B7%CE%B1%D7
    척 보니 q=%BA... 이하가 URL인코딩된 검색어인걸 알 수 있습니다. ( 만약 검색어가 순전히 영단어라면 q=blog 처럼 눈에 띄는 형식으로 표시되지만, 한글 등 2바이트 언어일 경우 %AA 와 같은 소위 URL 인코딩된 형태로 나타납니다.)
    위의 경우 검색엔진은 empas라고 알수 있을까요? 그럼 검색어를 담고 있는 Query문자열을 지칭하는 인자명(argument)은 무엇입니까? 위의 경우 q 입니다. 대부분 퀴리(query)라는 의미로 q를 많이 사용합니다. 혹은 keyword라는 의미로 k도 있을 수 있겠죠.
  • 그런데 아직 설정에서 엠파스는 등록이 안되어 있기 때문에, 위의 저 레퍼러 주소를 그냥 일반적인 주소로만 평가해서 키워드를 찾지 않습니다. 이때 새로 엠파스라는 검색엔진도 키워드를 체크하도록 설정에 추가하는 방법을 설명하고자 합니다.
  • CountRefer.pm의 my %engine 부분에 아래처럼 추가수정해 주면 됩니다.
    my %engine = (
     "Google" => "p|q",
     "Daum"  => "q",
     "Yahoo"  => "p",     # 콤마 (,) 추가
    "Empas" => "q"    # 추가된 부분엔 콤마로 끝나지 않습니다.(있어도 큰 상관은 없지만...)
    );
  • 위의 의미는 다음과 같습니다.
    레퍼러 주소의 도메인 부분에 empas(설정에 표시한 대문자 Empas는 리스트에 나타낼 때 보이는 형태입니다. 프로그램 내에서는 대소문자 구분없이 주소비교를 합니다.) 가 포함되고 쿼리 스트링 부분에 q=...이라는 부분이 있으면 이 주소는 검색엔진을 통한 것으로 인식하고 q=이하를 키워드로 포착합니다.
  • Google 의 경우 p|q 라고 조금 특이하게 된것은 같은 검색 엔진이라도 어떤 경우엔 p=%BA... 혹은 q=%BA... 식으로 검색어를 포함하는 부분을 복수개로 사용하는 경우입니다. 이럴때 소위 OR 연산자라는 | 를 통해 p|q 라고 적어주면 p 또는 q 이하가 검색어다! 라고 알려주는 것입니다. 만약 어떤 엔진의 경우 경우에 따라 p, q, keyword 를 사용한다면 "p|q|keyword" 라고 적어주면 됩니다.
  • 그럼 미리 모든 검색엔진에 대해 그 엔진은 p,q,keyword 를 사용한다고 알고 미리미리 등록해야만  됩니까? 그렇지 않습니다. 모든 레퍼러 주소는 있는 그대로 저장이 됩니다. 따라서 지금은 검색엔진을 통한 주소로 인식하지 못해도 나중에 발견한 후에 위처럼 설정에 추가만 해주면, 이후 리스트를 볼때는 검색어를 표시해 주게 됩니다.

자동 업데이트 확인 가능(업데이트 보장을 의미하는 것은 아님)

  • 레퍼러 삽입시의 자바스크립트에서 up=1이라는 부분을 추가하면, Visitors 를 클릭해서 레퍼러 리스트 화면을 띄울 때, 향후 이런 저런 문제점을 수정한 업데이트가 있을 경우에 페이지 상단에 이를 알리는 내용/링크가 표시되는 기능이 들어 있습니다.
  • 만일을 대비해 쉽게 문제점 수정을 알리는 기능인데, 업데이트가 있다는 보장은 아닙니다. 그래서 기본적으론 up=1이 포함되어 있지 않습니다.
  • <script type="text/javascript" language="Javascript">
    document.write("<script type='text/javascript' src='/blog/logs/ref-log.cgi?eid=페이지고유번호&list=1&n=5&up=1&cssid=indiv-refer&ref=" + escape(document.referrer) + "'>");
    document.write("</");
    document.write("script>");
    </script>
  • 만약 사용시엔 메인인덱스페이지에 삽입하는 레퍼러 한 부분에서만 삽입하길 권합니다.  매 엔트리 페이지의 레퍼러 링크 띄울때 마다 update를 확인하는 것은 오버로드기 때문입니다.

Comments

바카라 멋진 게임과의 만남 실시간바카라★ http://vip11.sk.to ★

바카라 오프라인에만 익숙한 겜블러어게는 파격적인 실시간바카라 http://vip11.sk.to
 
매일 라이브로 진행되는 최고의 라이브바카라 http://vip11.sk.to
 
실제 프로딜러의 깔끔하고 세련된 진행이 돋보이는 실시간바카라 http://vip11.sk.to
 
생방송이라 믿을 수 있고 빠른 입출금으로 신뢰를 쌓아온 생방송바카라 http://vip11.sk.to
 
오프라인이 아닌 집에서 즐기는 최고의 게임 테크노바카라입니다. http://vip11.sk.to

Posted by asdasd , 2008년 03월 7일 새벽 3:37

바카라 최고의 온라인바카라를 소개합니다.★ http://vip11.sk.to ★

365일 24시간 멈추지 않는 최고의 게임 테크노바카라 http://vip11.sk.to
 
세계인들과 함께 즐기는 바카라로 영어, 중국어, 한국어 지원 http://vip11.sk.to
 
이제 집에서 편안하게 즐겨보는 라이브바카라 http://vip11.sk.to
 
전세계에서 인정받는 최고의 게임과 만나보세요. http://vip11.sk.to

Posted by asdasd , 2008년 03월 7일 새벽 3:37

Post a comment

  • PGP/GPG 서명된 코멘트를 지원합니다. ?
  • 이메일 주소는 정중히 사절합니다.
  • 이름(닉네임)/블로그 주소는 필수 입력사항입니다.
  • 이미지는 자기 블로그상의 대문이미지 등을 사용하셔도 좋습니다.
  • 코멘트에 달린 이미지를 클릭하면 자신의 블로그로 연결됩니다.
  • 깨진 블로그/이미지 주소를 가진 코멘트는 수정/삭제 대상입니다.


  •   Forget me

    ?