제로보드에 관한 팁이나 강의를 소개하는 게시판입니다.
팁공유라고 해서 아주 특별하거나 기발한거 아니어도 됩니다.
자신이 제로보드를 사용하면서 생긴 자신만의 노하우나 아주 사소한 팁이어도 좋습니다.
자신에겐 아무것도 아니더라도 다른분들께는 분명 중요하고 소중한 팁이 될수 있을겁니다.

./files/attach/images/138/851791/Capture1w.gif
로봇에 의한 광고글을 못올리게하는 방법입니다..
요즘 워낙에,,봇들이 설치고 다녀서리,, 함 올려봅니다..-_--
원리는 글쓰기에서 랜덤숫자로된 코드 이미지를 보여주고 값을 입력하게한후..
키값이 맞으면 등록, 틀리면,, 등록을 못하게하는... 직접 설치해보시면 아실겁니다..^^;

이미지 코드 샘플은 위 이미지와 같습니다.

그럼.. 소스 나갑니다..

아래소스를 code_img.php로 저장후 제로보드(bbs)폴더안에 넣습니다..
<?
// 향상된 난수발생,생성.
mt_srand(hexdec(substr(md5(microtime()), -8)) & 0x7fffffff);
$rand_code .= mt_rand(1000,9999);

//anti_code폴더에 권한과 쓰기
$fp = fopen("anti_code/".$_GET['anti_robotCode'].".hnx","w") or die("쓰기에 실패");  
fwrite($fp, md5($rand_code), 1024);
chmod("anti_code/".$_GET['anti_robotCode'].".hnx", 0666) or die("권한 실패");
fclose($fp);
header ("Content-type: image/png");

//그림의 가로크기
$width = "80";
//그림의 세로크기
$height = "22";
$im = @imagecreate ($width, $height) or die ("이미지 에러!!");
  
//그림안의 색(rgb)
ImageColorAllocate($im, 255,255,255);
  
//그림의 테두리색(rgb색 코드)
$black = ImageColorAllocate($im, 219,219,219);
ImageRectangle($im,0,0,$width-1,$height-1,$black);
  
for ($i=0;$i<=128;$i++)
{
$point_color = imagecolorallocate ($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));
imagesetpixel($im,mt_rand(2,128),mt_rand(2,38),$point_color);
}
for ($i=0;$i<=5;$i++)
{
$text_color = imagecolorallocate ($im, mt_rand(0,255), mt_rand(0,128), mt_rand(0,255));
$x = 5 + $i * 20;
$y = mt_rand(1,5);
imagechar ($im, 5, $x, $y,  $rand_code{$i}, $text_color);
}
imagepng ($im);
imagedestroy ($im);
die();
?>

그다음..

제로보드(bbs)폴더/script/script_write.php 파일을 php전용 에디터로 열어..
if(!document.write.name.value)
  {
   alert('이름을 입력하여 주세요.');
   document.write.name.focus();
   return false;
  }
요부분 아래에 다음 소스를 넣어줍니다.

if(!document.write.anti_robotCodeimg.value)
  {
   alert('코드를 입력해주세요.');
   document.write.anti_robotCodeimg.focus();
   return false;
  }

그다음..

제로보드(bbs)폴더안 write_ok.php를 php전용 에디터로 열어..
24번째줄...
// 각종 변수 검사;;
if(!$member[no]) { 요거 다음줄에 아래소스를 넣습니다.

$codeFile = file("anti_code/".$_GET['anti_robotCode'].".hnx");        
if($codeFile[0] != md5($_POST['anti_robotCodeimg'])) Error("코드입력이 올바른지 확인하세요.");

그다음.. 소스 끝부분쯤에..
// MySQL 닫기 이거 바로위에 아래소스를 추가합니다.
// 파일 자동삭제.
$anti_codedir = './anti_code/';
$dir = opendir($anti_codedir);
while((false!==($file=readdir($dir))))
if($file!="." and $file !="..") @unlink($anti_codedir.'/'.$file);
closedir($dir);

그다음..

사용중인 스킨폴더안 write.php를 php전용 에디터로 열어..
소스 맨위에..
<?
// 향상된 난수발생,생성.
mt_srand(hexdec(substr(md5(microtime()), -8)) & 0x7fffffff);
$rand_codei = md5(mt_rand(1000000, 9999999));
?>
추가합니다..
그다음..
action=write_ok.php 이부분을..
action=write_ok.php<? echo "?anti_robotCode=".$rand_codei; ?> 이렇게 변경.

그다음..
이미지 코드가 보일 자리에..

<?if(!$member[no]){?>코드입력: <input name="anti_robotCodeimg" type="text" style="width:90px;height:21px;" class="input"> <img src="code_img.php<? echo '?anti_robotCode='.$rand_codei;?>" border="0" style="vertical-align:top;"><?}?>

넣어주세요...

이제 마지막으로..
제로보드폴더(bbs)안에 anti_code폴더를 만들어 줍니다..

이제 남은것은 테스트....^^;=3=3=3
############################################################
응용하면 회원가입페이지, 코멘트등에서도 사용할 수 있겠죠..^_^
이 방법 말고 세션을 이용한 방법도있는데..그 방법은 귀차니즘으로 안올림.;;...=3=3=3

댓글 '53'

[레벨:1]이순신장군

2008.05.17 17:29:42
*.233.10.222

중요한점 한가지....
teachnew21님의 회원가입 응용코드를 해보았는데,
향상된 난수 생성은 code_img.php 에 있기 때문에 member_join.php에 생성하지 말아야 합니다.
그렇지 않으면 두개의 난수가 생성되서 코드를 입력 했을 시 매치가 되지 않기 때문에 코드 오류가 뜹니다. 가입이 되지를 않는 것이죠.
고로 member_join.php의 난수생성부분 코드는 지워주는 것이 좋다고 생각합니다.

[레벨:3]채준배

2008.09.20 18:08:22
*.45.205.25

xe에서도 쓸 수 있는 기능인가요?

[레벨:1]이동화309

2008.10.17 11:08:05
*.163.195.75

너무 너무 잘 사용하고 있습니다..감사합니다.
그런데... 제가 사용하는 깜보700스킨 (ggambo7200_board) 게시판에는
write.php에 action="<?=$dir?>/write_ok.php
이렇게 되어 있습니다.
그래서
action=<?=$dir?>/write_ok.php<? echo "?anti_robotCode="<?=.$rand_codei; ?> 로 수정했더니
코드를 입력하지 않으면 글이 써지지는 않지만,
엉뚱한 숫자를 입력해도 글쓰기가 됩니다.
광고글도 여전히 올라옵니다..

저는 php나 cgi나 전혀 문외한입니다.
자세히 알려주시거나 tae@kabcofno.org로 알려주시면 정말 감사하겠습니다.
문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회수
공지 추천 팁란입니다. (2003.04.28) [78] [레벨:30]DeX™ 2002-08-28 330540
공지 [공지] 글 쓰시기 전에 꼭!! 먼저 읽어 보세요 (2003.03.21) [15] [레벨:30]DeX™ 2002-08-21 117064
공지 제로보드4 팁을 모집합니다!! [8] [레벨:30]DeX™ 2009-02-20 8704
3787 아이디&비밀번호 찾기 클릭시 setup파일을 수정해줘야 된다??? [3] [레벨:2]미니온 2005-08-02 4199
3786 게시판 내용보기 권한 없을 경우 경고창 띄우기 (최근게시물에서도 ... [13] [레벨:3]꿈바라기 2005-08-07 3720
3785 초보의 팁!!(사진 올릴때...)이것두 팁인가?? [5] [레벨:1]김규찬 2005-08-06 2739
3784 쪽지에 HTML 적용, 자바스크립트 차단, 허용태그, 태그로만 작성시... [12] [레벨:5]id: 柔月光 2005-08-06 3995
3783 자동으로 유령회원 정리하기 [4] [레벨:1]퍼미션 2005-08-05 3817
3782 https프로토콜에도 링크생성하기(;) [레벨:8]플로렐라 2005-08-05 1759
3781 Firefox(불여우)에서 이름클릭시 Layer(레이어)뜨게 하기 imagefile [26] [레벨:2]Ryan 2005-08-05 3630
3780 내용(memo) 크기 16MB 로 늘리기 [5] [1] [레벨:2]Ryan 2005-08-04 2500
3779 [정보] 1970년 완전 해결법 [4] [레벨:3]k2love 2005-08-04 4161
3778 W3C 표준 HTML 검사. [10] [레벨:2]Ryan 2005-08-03 1784
3777 아이디의 최대 입력 갯수는 20글자입니다. [2] [레벨:5]아가페 2005-08-03 1689
3776 제로 보드 RSS 피드제공하기 [7] [레벨:1]지율 2005-08-01 4391
3775 공지사항글에는 코멘트 못달게 하기 [12] [레벨:1]thisbe 2005-07-29 3290
3774 새쪽지 새창으로 뜨게 하는 방법 [7] [레벨:2]황효복 2005-07-29 5676
3773 회원가입에서 회원이름에 필터링을 적용 [9] [레벨:20]영진 2005-07-28 3832
» [1차수정]광고,로봇글 제한하기[이미지 코드사용] imagefile [53] [레벨:19]토토루 2005-07-27 11686
3771 간단하게 사용권한 표시 [2] [레벨:18]하우 2005-07-27 3295
3770 게시판 하나를 스킨이 다른 여러 게시판으로 사용하기(mysql 5.0이상) image [6] [레벨:2]조은호 2005-07-25 3555
3769 24시간기준 포인트 자동증가 (회원정보보기에서) imagefile [6] [레벨:20]영진 2005-07-24 2843
3768 FIREFOX(불여우) 에서 CATEGORY (카테고리) 안나오는 문제 해결 [9] [레벨:2]Ryan 2005-07-24 2631



XE Login

OpenID Login