아이피, 아이디로 중복 추천 막기 > 그누3 팁자료실

그누3 팁자료실

아이피, 아이디로 중복 추천 막기 정보

그누호환 아이피, 아이디로 중복 추천 막기

본문

중복추천을 완전하게 차단하는 방법입니다.

아래와 같이 테이블을 생성합니다.

CREATE TABLE `gb_votelog` (
  `no` int(11) NOT NULL auto_increment,
  `id` char(20) default NULL,
  `ip` char(20) NOT NULL default '',
  `w_id` int(11) NOT NULL default '0',
  `vote_date` datetime NOT NULL default '0000-00-00 00:00:00',
  `db` char(40) NOT NULL default '',
  PRIMARY KEY  (`no`),
  KEY `index1` (`w_id`,`db`)
) TYPE=MyISAM

bbs/gbrecommend.php파일을 수정합니다.
------------------------------원본-----------------------------
# 3.23
# 한번 추천한글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = "ss_good_{$bo_table}_{$wr_id}";
if (!$_SESSION[$ss_name]) {
    if ($recommend == "good") {
        $sql = " update $write_table set wr_good = wr_good + 1
                  where wr_id = '$wr_id' ";
        $re_good = 1;
    } else if ($recommend == "nogood") {
        $sql = " update $write_table set wr_nogood = wr_nogood + 1
                  where wr_id = '$wr_id' ";
        $re_good = 0;
    }
    sql_query($sql);

    session_register($ss_name);
    $$ss_name = $_SESSION[$ss_name] = TRUE;
}
-----------------------------수정--------------------------
# 3.23
# 한번 추천한글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
#아이피, 아이디로 중복 막기
if($member[mb_id])
{
$sql="select count(no) from gb_votelog where db='$write_table' and w_id= '$wr_id' and (id='$member[mb_id]' or ip='$_SERVER[REMOTE_ADDR]' ) ";
}
else
{
$sql="select count(no) from gb_votelog where db='$write_table' and w_id= '$wr_id' and ip='$_SERVER[REMOTE_ADDR]' ";
}

$val=sql_fetch($sql);
if($val[0])
{
alert("이미 추천하셨습니다.");
}

if ($recommend == "good") {
$sql = " update $write_table set wr_good = wr_good + 1
  where wr_id = '$wr_id' ";
$re_good = 1;
} else if ($recommend == "nogood") {
$sql = " update $write_table set wr_nogood = wr_nogood + 1
  where wr_id = '$wr_id' ";
$re_good = 0;
}
sql_query($sql);

$sql="insert into gb_votelog set w_id='$wr_id', id='$member[mb_id]', ip='$_SERVER[REMOTE_ADDR]', db='$write_table', vote_date='$now' ";
sql_query($sql);

이렇게 수정하시면 됩니다.
사용량이 많은 게시판에서는 오래 사용하면 느려질수도 있는데 주기적으로 예를들어 한달이상의 DB는 삭제하는게 좋을듯합니다.
추천
0

댓글 전체

전체 1,026
그누3 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT