추천,비추천시 아이피 도 검사하기 정보
추천,비추천시 아이피 도 검사하기관련링크
http://localhost
241회 연결
본문
추천, 비추천시 현재는 회원의 아이디로만 검사 하도록 되어 있는데
유령 또는 세컨드 아이디로 장난치는 것을 막는 방법 입니다.
쿠키로 중복체크를 할려다가 아이피 보다는 비효율적이라 포기하고
걍 아이피로 검사 하도록 하였으며 프록시 서버로 경유하는 것은 막을
방법이 없습니다.ㅠ.ㅠ 아시는분 계시면 알려 주시면 감사 하겠습니다.
참고사항: 여건상 원본을 수정 하였습니다.
적용방법
1,아래의 코드를 긁어서 bbs/good.php 로 만든후 덮어쓰기
<?
include_once("./_common.php");
// 추천 테이블에 아이피를 담을 그릇이 없으므로 생성함 - 헐랭이
if ($goodadmin =='adok') {
if ($is_admin =='super') {
$g4memoup ="ALTER TABLE $g4[board_good_table] ADD good_ip VARCHAR(255) NOT NULL";
$resultup = @mysql_query($g4memoup) or mysql_error();
alert_close("아이피를 저장할 필드추가를 완료하였습니다.");
} else {
alert_close("니 머꼬? 콱");
}
exit;
}
@include_once("$board_skin_path/good.head.skin.php");
echo "<meta http-equiv='content-type' content='text/html; charset=$g4[charset]'>";
if (!$is_member)
{
$href = "./login.php?$qstr&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id");
echo "<script language='JavaScript'>alert('회원만 가능합니다.'); top.location.href = '$href';</script>";
exit;
}
if (!($bo_table && $wr_id))
alert_close("값이 제대로 넘어오지 않았습니다.");
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name))
alert_close("해당 게시물에서만 추천 또는 비추천 하실 수 있습니다.");
$row = sql_fetch(" select count(*) as cnt from {$g4[write_prefix]}{$bo_table} ", FALSE);
if (!$row[cnt])
alert_close("존재하는 게시판이 아닙니다.");
if ($good == "good" || $good == "nogood")
{
if($write[mb_id] == $member[mb_id])
alert_close("자신의 글에는 추천 또는 비추천 하실 수 없습니다.");
if (!$board[bo_use_good] && $good == "good")
alert_close("이 게시판은 추천 기능을 사용하지 않습니다.");
if (!$board[bo_use_nogood] && $good == "nogood")
alert_close("이 게시판은 비추천 기능을 사용하지 않습니다.");
//아이피로검사 추가함 - 헐랭이
$sqlm = " select * from $g4[board_good_table]
where bo_table = '$bo_table'
and wr_id = '$wr_id'
and good_ip = '$_SERVER[REMOTE_ADDR]'
and bg_flag in ('good', 'nogood') ";
$rowm = sql_fetch($sqlm);
if ($rowm[good_ip])
{
if ($rowm[bg_flag] == "good")
$statusm = "추천";
else
$statusm = "비추천";
echo "<script language='JavaScript'>alert('이미 \'$statusm\' 하신 글 입니다.');</script>";
exit;
}
//아이피로 검사 추가 끝
$sql = " select bg_flag from $g4[board_good_table]
where bo_table = '$bo_table'
and wr_id = '$wr_id'
and mb_id = '$member[mb_id]'
and bg_flag in ('good', 'nogood') ";
$row = sql_fetch($sql);
if ($row[bg_flag])
{
if ($row[bg_flag] == "good")
$status = "추천";
else
$status = "비추천";
echo "<script language='JavaScript'>alert('이미 \'$status\' 하신 글 입니다.');</script>";
}
else
{
// 추천(찬성), 비추천(반대) 카운트 증가
sql_query(" update {$g4[write_prefix]}{$bo_table} set wr_{$good} = wr_{$good} + 1 where wr_id = '$wr_id' ");
// 내역 생성
// (아이피 저장이 추가됨 - 헐랭이)
sql_query(" insert $g4[board_good_table] set bo_table = '$bo_table', wr_id = '$wr_id', mb_id = '$member[mb_id]', good_ip = '$_SERVER[REMOTE_ADDR]', bg_flag = '$good', bg_datetime = '$g4[time_ymdhis]' ");
if ($good == "good")
$status = "추천";
else
$status = "비추천";
echo "<script language='JavaScript'> alert('이 글을 \'$status\' 하셨습니다.');</script>";
}
}
@include_once("$board_skin_path/good.tail.skin.php");
?>
<script language="JavaScript"> window.close(); </script>
===============================================================
2, 관리자로 로그인후 부라우저 주소줄에 아래의 링크를 딱 한번만 실행합니다.
(추천,비추천시 아이피를 저장할 필드를 추가함)
멋진내홈피주소/그누보드/bbs/good.php?goodadmin=adok
유령 또는 세컨드 아이디로 장난치는 것을 막는 방법 입니다.
쿠키로 중복체크를 할려다가 아이피 보다는 비효율적이라 포기하고
걍 아이피로 검사 하도록 하였으며 프록시 서버로 경유하는 것은 막을
방법이 없습니다.ㅠ.ㅠ 아시는분 계시면 알려 주시면 감사 하겠습니다.
참고사항: 여건상 원본을 수정 하였습니다.
적용방법
1,아래의 코드를 긁어서 bbs/good.php 로 만든후 덮어쓰기
<?
include_once("./_common.php");
// 추천 테이블에 아이피를 담을 그릇이 없으므로 생성함 - 헐랭이
if ($goodadmin =='adok') {
if ($is_admin =='super') {
$g4memoup ="ALTER TABLE $g4[board_good_table] ADD good_ip VARCHAR(255) NOT NULL";
$resultup = @mysql_query($g4memoup) or mysql_error();
alert_close("아이피를 저장할 필드추가를 완료하였습니다.");
} else {
alert_close("니 머꼬? 콱");
}
exit;
}
@include_once("$board_skin_path/good.head.skin.php");
echo "<meta http-equiv='content-type' content='text/html; charset=$g4[charset]'>";
if (!$is_member)
{
$href = "./login.php?$qstr&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id");
echo "<script language='JavaScript'>alert('회원만 가능합니다.'); top.location.href = '$href';</script>";
exit;
}
if (!($bo_table && $wr_id))
alert_close("값이 제대로 넘어오지 않았습니다.");
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name))
alert_close("해당 게시물에서만 추천 또는 비추천 하실 수 있습니다.");
$row = sql_fetch(" select count(*) as cnt from {$g4[write_prefix]}{$bo_table} ", FALSE);
if (!$row[cnt])
alert_close("존재하는 게시판이 아닙니다.");
if ($good == "good" || $good == "nogood")
{
if($write[mb_id] == $member[mb_id])
alert_close("자신의 글에는 추천 또는 비추천 하실 수 없습니다.");
if (!$board[bo_use_good] && $good == "good")
alert_close("이 게시판은 추천 기능을 사용하지 않습니다.");
if (!$board[bo_use_nogood] && $good == "nogood")
alert_close("이 게시판은 비추천 기능을 사용하지 않습니다.");
//아이피로검사 추가함 - 헐랭이
$sqlm = " select * from $g4[board_good_table]
where bo_table = '$bo_table'
and wr_id = '$wr_id'
and good_ip = '$_SERVER[REMOTE_ADDR]'
and bg_flag in ('good', 'nogood') ";
$rowm = sql_fetch($sqlm);
if ($rowm[good_ip])
{
if ($rowm[bg_flag] == "good")
$statusm = "추천";
else
$statusm = "비추천";
echo "<script language='JavaScript'>alert('이미 \'$statusm\' 하신 글 입니다.');</script>";
exit;
}
//아이피로 검사 추가 끝
$sql = " select bg_flag from $g4[board_good_table]
where bo_table = '$bo_table'
and wr_id = '$wr_id'
and mb_id = '$member[mb_id]'
and bg_flag in ('good', 'nogood') ";
$row = sql_fetch($sql);
if ($row[bg_flag])
{
if ($row[bg_flag] == "good")
$status = "추천";
else
$status = "비추천";
echo "<script language='JavaScript'>alert('이미 \'$status\' 하신 글 입니다.');</script>";
}
else
{
// 추천(찬성), 비추천(반대) 카운트 증가
sql_query(" update {$g4[write_prefix]}{$bo_table} set wr_{$good} = wr_{$good} + 1 where wr_id = '$wr_id' ");
// 내역 생성
// (아이피 저장이 추가됨 - 헐랭이)
sql_query(" insert $g4[board_good_table] set bo_table = '$bo_table', wr_id = '$wr_id', mb_id = '$member[mb_id]', good_ip = '$_SERVER[REMOTE_ADDR]', bg_flag = '$good', bg_datetime = '$g4[time_ymdhis]' ");
if ($good == "good")
$status = "추천";
else
$status = "비추천";
echo "<script language='JavaScript'> alert('이 글을 \'$status\' 하셨습니다.');</script>";
}
}
@include_once("$board_skin_path/good.tail.skin.php");
?>
<script language="JavaScript"> window.close(); </script>
===============================================================
2, 관리자로 로그인후 부라우저 주소줄에 아래의 링크를 딱 한번만 실행합니다.
(추천,비추천시 아이피를 저장할 필드를 추가함)
멋진내홈피주소/그누보드/bbs/good.php?goodadmin=adok
추천
4
4
댓글 5개
멋진 팁 감사합니다..... 스크랩 합니다...^^
감사합니다.^^
저도 이제 퇴물이 다되었는지 질문 게시판에서 질문의 내용을 잘못보고 이방법이 나온 겁니다.ㅎㅎ
저도 이제 퇴물이 다되었는지 질문 게시판에서 질문의 내용을 잘못보고 이방법이 나온 겁니다.ㅎㅎ
아 복잡하다..
아 너무 어렵네요
좋은 팁 감사합니다.