시작페이지로 즐겨찾기추가
로그인
회원가입 l 출석체크 l 마이페이지 l CGIMALL
자료실 사이트등록 랭킹100 프로그램리뷰 관리자추천자료 초보가이드
커뮤니티
전체 펼쳐보기
퀵메뉴링크 jquery , CSS , PHP , Javascript , 무료폰트 , ASP
상세검색
> 커뮤니티 > 골드팁 상세보기
커뮤니티 구인구직
사이트등록
현재접속자 새로고침
게시판타이틀 골드팁 / 상세보기
트위터로 보내기 미투데이로 보내기 싸이월드 공감
추천수 359 | 조회수 9,431 | 등록일 2003-08-06 10:31:47

닉네임

HappyCGI

제목

방명록 도배방지 - 세팔방명록
내용


오즈마녀 입니다...


지긋지긋하게 올라오는 광고·도배글은 게시판을 가리지 않습니다. 황야의 무법자 같습니다.

이번에는 방명록으로 많이 쓰는 세팔방명록 3.0을 기준으로 도배글을 막아보겠습니다.

이런 광고물의 대부분이 게시판 자동등록기를 사용해서 한번에 수만건씩 쏘아올리고 있습니다.

세팔방명록 3.0에는 이렇게 도배되는 게시물을 막는 기능이 포함되지 않은 것 같습니다.

도배·광고글 막을 수 있는 방법은 여러가지가 있겠으나... 예전에 사용하던 쿠키를 사용해서 막는 방법을 여기서도 사용하겠습니다.

게시판별로 적용되는 도배·광고글을 막을 수 있는 방법들을 계속 모으려고 합니다.
좋은 방법이나 오즈의 글 내용 중 오류가 발견되면 메일 주십시요.

=============== 쿠키체크 방법(세팔방명록 3.0) =====================
● spguest.cgi <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

sub display{
my(@page_list, $start);
&get_date;
#도배체크
print "Set-Cookie: US=\"ad_no\"; expires=Sunday, 31-Dec-$nyear 12:12:12 GMT;\r\n";
#도배체크(한줄로 씀)
if((-e "$main_dir/idx/$page.cgi") && ($FORM{'category'} eq "")){

sub write{
my(@idx, @temp, @gul, $num, $num_data, $pass, $name, $mail, $home, $html, $autolink, $br_val, $subject, $comments, $open_val, $mod_date, $ans, $wdate);
if(($FORM{'name'} eq "") || ($FORM{'subject'} eq "") || ($FORM{'comments'} eq "")){
&err("blank");
}
&w_deny_user_ck;
unless(($FORM{'mail'} eq "") || ($FORM{'mail'} =~ /.*\@.*\..*/)){
&err("mail");
}
$ans = $FORM{'ans'};
&read_cookie;
#도배체크
if($ad_no eq "") { &err("ad_no_write"); }
#도배체크
if(($FORM{'reply'} ne "ok") && ($FORM{'modify'} ne "ok")){

sub read_cookie{
if($ENV{'HTTP_COOKIE'}) {
my @cookies = split(/; /,$ENV{'HTTP_COOKIE'});
foreach(@cookies) {
($name,$value) = split(/=/,$_);
$COOKIE{$name} = $value;
}
if($COOKIE{'US'}) { $ad_no = $COOKIE{'US'} };
#도배체크
}
}

sub err{
my($result, $msg);
$result = $_[0];
if($result eq "id"){
$msg = "spguest.cgi?id=test 같은 형식으로 만들어 주세요... ^^";
}
elsif($result eq "blank"){
$msg = "이름, 제목, 내용은 반드시 채워야 합니다.";
}
elsif($result eq "mail"){
$msg = "이메일 주소가 잘못되었네요... ^^";
}
elsif($result eq "admin"){
$msg = "관리자 비밀번호가 잘못되었습니다.";
}
elsif($result eq "same_pwd"){
$msg = "설정하신 비밀번호가 일치하지 않습니다.";
}
elsif($result eq "not_owner"){
$msg = "비빌번호가 틀립니다. 다시한번 확인해 보세요.";
}
elsif($result eq "keyword"){
$msg = "검색 키워드를 입력해 주세요.";
}
elsif($result eq "ad_no_write"){
#도배체크
$msg = "게시판 자동등록기 사용하지 않나요?";
#도배체크
}
#도배체크
else{
$msg = "예기치 못한 오류입니다. ";
}
&head;

spguest.cgi 내용 중 파란글자 부분을 해당위치에 추가하시면 됩니다.
추가 내용 중 ad_no 외 ad_no_write 두 단어는 짝을 맞춰 다른 변수명으로 바꾸셔도 됩니다.
수정 작업 전에 원본파일을 하나 보관해뒀다가, 수정시 문제가 생기면 원본파일을 사용하시기 바랍니다.

자료출처 : http://mrs-oz.com/garden/index_cgi.html

추천스크랩소스보기 목록
이전게시글 게시판 도배방지팁 - spboard pro 2003-08-06 10:31:01
다음게시글 MYSQL 에서 if 문 쓰기 2003-08-10 16:47:13