본문 바로가기

기억 저편의 것들/미분류

방명록의 스팸차단 꼼수

스팸차단 꼼수..
꺼져스킨에서도 스팸차단솔루션과 함께 스팸차단 꼼수가 제공중이긴하지만,,
이게 정말로 하루에도 몇개씩 올라오는 그지발싸개같은 스팸을 차단하는데 효과가 있을까..하고 의아하게 생각되었지만, 100%는 아니어도 어느정도 만족할 만한 효과를 보았다는 사람(도희)도 있고하여,
간단하게나마 적용방법을 소개합니다..


1.
사용중인 방명록 스킨의 write.php 의 소스를 열고,
가급적 ok 버튼의 앞쪽에다가 테이블이 깨지지 않도록 적당한 위치에 아래의 내용을 삽입합니다.
(한글로 된 부분은 적당히들 수정하세요..)

<div align=center style="margin:0;padding:0;"><input type=checkbox name=pass value=1 id="pass" onfocus=blur()> <label for="pass" title="방명록 작성시 좌측의 체크박스에 꼭 체크해주세요." style="color:blue;font-family:돋움;font-size:8pt;cursor:pointer;">[로봇에 의한 자동등록방지를 위한 체크 필수] :: 방명록 작성시 꼭 체크해주세요!</label></div>




2. (생략가능한 절차)
방명록 스킨의 write.php 의 소스를 살펴서<form 을 검색해보시고, onsubmit= 의 내용이 있는지 살펴봅니다.

2-1.
onsubmit 관련내용이 없다면 ::
아래와 같이 하나 만듭니다.
<form method=post name=write action=write_ok.php onsubmit="check_Comment(write);return false;" 
그리고 이 소스 윗줄에 check_Comment 펑션을 넣습니다.

<script type="text/javascript">
function check_Comment(obj) {
 
   if(!document.write.name.value) {
 alert('이름(name)을 입력해 주십시오.'); 
 obj.name.focus(); 
 return false;
  }
  if(!document.write.password.value) {
 alert('비밀번호(password)를 입력해 주십시오.'); 
 obj.password.focus(); 
 return false;
  }
  if(document.write.pass.checked==false) {
 alert('\n[로봇에 의한 자동등록방지를 위한 체크 필수!]를 반드시 체크해 주십시오.\n\n');
 return false;
  }
    if(!document.write.memo.value) {
 alert('내용을 입력해 주십시오.');
 obj.memo.focus();
 return false;
  }
  document.write.submit();
  return true;
}
</script>


2-2.
기존에 사용중인 onsubmit 관련 자바스크립트소스가 있다면 ::

  if(document.write.pass.checked==false) {
 alert('\n[로봇에 의한 자동등록방지를 위한 체크 필수!]를 반드시 체크해 주십시오.\n\n');
 return false;
  }

관련 자바스크립트의 내용 중간쯤에 위의 내용을 추가합니다.




3.
수정한 write.php 파일을 스킨폴더의 방명록 스킨에 덮어씁니다.




4.
write.php 소스에서 <form 을 다시한번 살펴서, action 을 어디로 받는지 확인합니다.
action=write_ok.php 일 경우로 예를 듭니다.
제로보드 폴더에 있는 write_ok.php 파일을 수정합니다.(수정작업전 빽업은 필수!)




5.
write_ok.php 소스 상단의  include "_head.php"; 이 내용 바로 밑에 아래의 내용을 붙여넣습니다.
방명록게시판아이디는 자신이 사용중인 게시판 아이디를 입력합니다.

// 패쓰체크 by ggerzer
if(($id=="방명록게시판아이디") && !$member[no]) {
 if($pass) {
  echo "";
 } else {
  Error("로봇에 의한 자동등록방지를 위한 체크 필수!를 반드시 체크해 주십시오.");
 }
}




6.
수정한 write_ok.php 파일을 제로보드 폴더에 업로드합니다.