테스트 사이트 - 개발 중인 베타 버전입니다

조회수, 링크수 등 1일 1ip당 1회만 증가하는 방법이 있을까요?

· 15년 전 · 1814 · 2
조회수나 링크수에 따른
랭킹(순위)게시판을 구현하기 위해서
열심히 만들어보고있는데요.

현재 그누보드의 조회수는 브라우저가 완전히 닫히고 새로열리면 hit 수가 증가하게되어있습니다.
+++이는 방문자에따라 랭킹 조작이 가능하여 의미가 사라지게 됩니다.

----------------------------------------------------------------------------------
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name))
{
sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
----------------------------------------------------------------------------------
현재는 위와같은 쿼리로 처리되고있습니다.

이를 제목과 같이 1ip당 1회만 증가하는 방법으로 변경하고 싶은데요,

쿠키나 세션으로 하는방법은 세션삭제시 다시 힛트수를 증가시킬수 있다고 어디서 들은것 같아요.

이를구현하려면 대략적으로
->방문자 특정게시물 조회
->별도의 필드에 조회한 사람의 ip값을 비교
->동일IP없을경우 저장 hit 1 증가
->동일IP있을경우->hit 증가 없음

이런식으로 구현해야 할까요?...
완전초보인지라 이게 맞는건지도 모르겠네요 ㅡㅜ

소스나 힌트좀 주시면 감사하겠습니다. 꾸뻑~

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 2개

여러가지 방법이 있겠지만 ..

db에 대략 한 3개의 필드를 준비하세요.
ip,section(분류:list or view or main or _SERVER["PHP_SELF"]),regdate(YmdHis)

row = select `ip` from `table` where ip = $_SERVER[REMOTE_ADDR] limit 1

if row[ip]!="" {//작업없음}else{// hit ++}

그리고 db 너무 많이 쌓이게 되므로 delete from 'table' where regdate < (date(YmdHis)-10)

대충 요런감으로 하시면 될듯...
15년 전
감이 오진 않지만 답변해 주셨으니 채택해드릴께요 ^^
너무 어렵네요 ㅜㅜ

게시글 목록

번호 제목
284508
284499
284492
284490
284484
284481
284478
284476
284474
284472
284470
284458
284457
284454
284453
284447
284446
284444
284441
284440