화니

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

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

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

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는 삭제하는게 좋을듯합니다.
|

댓글 1개

감사합니다. 유용한 소스네요,
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누3 팁자료실

+
제목 글쓴이 날짜 조회
21년 전 조회 2,418
21년 전 조회 2,454
mmando
21년 전 조회 2,794
21년 전 조회 2,078
21년 전 조회 2,312
21년 전 조회 2,314
mmando
21년 전 조회 2,608
21년 전 조회 2,675
21년 전 조회 2,833
21년 전 조회 3,189
21년 전 조회 3,023
21년 전 조회 2,910
21년 전 조회 2,444
21년 전 조회 2,848
21년 전 조회 3,052
21년 전 조회 2,766
21년 전 조회 2,540
21년 전 조회 3,316
mmando
21년 전 조회 2,423
21년 전 조회 2,100
🐛 버그신고