조회수, 링크수 등 1일 1ip당 1회만 증가하는 방법이 있을까요? 정보
조회수, 링크수 등 1일 1ip당 1회만 증가하는 방법이 있을까요?
본문
조회수나 링크수에 따른
랭킹(순위)게시판을 구현하기 위해서
열심히 만들어보고있는데요.
현재 그누보드의 조회수는 브라우저가 완전히 닫히고 새로열리면 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 증가 없음
이런식으로 구현해야 할까요?...
완전초보인지라 이게 맞는건지도 모르겠네요 ㅡㅜ
소스나 힌트좀 주시면 감사하겠습니다. 꾸뻑~
랭킹(순위)게시판을 구현하기 위해서
열심히 만들어보고있는데요.
현재 그누보드의 조회수는 브라우저가 완전히 닫히고 새로열리면 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 증가 없음
이런식으로 구현해야 할까요?...
완전초보인지라 이게 맞는건지도 모르겠네요 ㅡㅜ
소스나 힌트좀 주시면 감사하겠습니다. 꾸뻑~
댓글 전체
여러가지 방법이 있겠지만 ..
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)
대충 요런감으로 하시면 될듯...
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)
대충 요런감으로 하시면 될듯...

감이 오진 않지만 답변해 주셨으니 채택해드릴께요 ^^
너무 어렵네요 ㅜㅜ
너무 어렵네요 ㅜㅜ