금지단어 필터링 제발 도와주세요오 ㅠㅠ 채택완료
일단 저는 https://sir.kr/g5_skin/25290?sfl=wr_subject%7C%7Cwr_content&stx=%EC%83%81%EB%8B%B4#c_29795
해당 스킨을 사용중입니다.
메인페이지에서 상담폼을 입력하면 다른 게시판으로 그 내용이 가게되죠.
이 입력폼은 그냥 일반 php파일을 인클루드하여 메인페이지에 불러온것이구요 write.skin.php파일에서 글을 쓰지않습니다.
스킨안에는 write_update.head.skin.php 와 write_update.skin.php 파일이 두개가있습니다.
이곳에 금지단어 필터링을 넣으려고 시도했습니다.
위의 것은 write_update.head.skin.php 의 코드입니다. 솔직히 저게 지금 제기능을 하는지도 모르겠습니다. 왜있는지 모르겠습니다. 캡챠는 사용도안합니다.
위의 코드는 write_update.skin.php 의 소스입니다.
저기다가 저렇게 넣어줬는데요..
전혀 작동하지않다더군요..
sir에 검색해보니 write_update.head.skin.php에 넣으라는데 거기에 넣어도 똑같이 안되구요..
어떻게 해야할지요 ㅠㅠ
var char_min = parseInt();
var char_max = parseInt();
위의 코드는 상담문의폼 php파일입니다. 이 파일은 루트폴더에 있구용.
index.php파일에 <? include_once("./customer1.php"); ?> 이렇게 불러와서 사용하고있습니다..
제발 도와주세요 어떻게해야할지.. 진짜 상담문의들어올때마다 문자가 관리자에게 가고있는데 거의 뭐 폭탄처럼 몇분마다 한번씩 오니까.. 진짜 폭탄이라는말이 걸맞을정도로 많이와요 ㅠㅠ 금지단어 필터링으로 해서 아예 그 스팸특유의 단어들 막아놓으면 될거같아서요... 그전에 워드프레스에서도 그렇게 해서 스팸DB를 많이 줄였던 경험이있습니다.
도와주세요!!!!!!!!!!!!
이해가 안되신다면 성심성의껏 설명해드리겠습니다 제발제발 도와주세요 ㅠㅠ
답변 2개
저렇게 할 필요가 없는 작업입니다
basic스킨 write.skin.php
하단 자바스크립트에 보면 관리자 페이지에서 등록한 단어들을 필터링하는 코드가 들어있습니다
쓰기 스킨 function fwrite_submit(f) 부분을 비교하여 수정해서 해보세요
댓글을 작성하려면 로그인이 필요합니다.
www/bbs/write_update.php 를 보시면 아시겠지만
write_update.head.skin.php 이후
DB작업이 진행되고(수정, 삽입, 가변파일처리등)
이후 write_update.skin.php과 write_update.tail.skin.php가 진행됩니다.
현재 내용만으로는 단순히필터링 기능만 작동하지 않는지(글도 icode도 정상작동)
write_update.head.skin.php 자체가 읽히지 않는다는것인지(데이터 부족으로 인한 path수집 실패) 알수 없는데
www/bbs/write_update.php에서 디버깅을 어느정도 진행해 보시는게 좋을것으로 보입니다.
답변에 대한 댓글 4개
write_update.head.skin.php의 위치에 따라 작동하지 않을 수 있습니다.
$board_skin_path의 값이 들어가있는지 확인이 필요하고 들어가있다면 그 값이 정상인지도 확인해봐야합니다.
정상적으로 write_update.head.skin.php파일을 include한다면 word_filter_check를 불러오는지 확인 후 word_filter_check가 정상작동 하는지 확인 해 봐야겠죠.
그런데 word_filter_check를 불러오는지는 어디서 확인하죠?
write_update.head.skin.php 파일에도 없구 /bbs/write_update.php 에도 그런건 없네요 ㅠㅠ
write_update.skin.php에 추가되어있는 word_filter_check 함수를 write_update.head.skin.php에 옮긴뒤에 word_filter_check 함수 선언 이후 사용하시면 되지 않을까요?
아까도 말씀드렸지만
write_update.php의 처리프로세스는
1. 예외처리 또는 공격방어
2. write_update.head.skin.php을 include
3. DB처리(글입력, 글수정, 가변파일처리)
4. 메일링 처리
5. write_update.skin.php
6. write_update.tail.skin.php
7. 종료(파일 업로드 메세지출력 또는 URL이동)
입니다.
DB처리가 시작되기 전인 write_update.head.skin.php에서 필터를 확인 및 작업을 지속할지 튕겨낼지를 정하시면 됩니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
/bbs/write_update.php에 보니까
[code]
// 사용자 코드 실행
@include_once($board_skin_path.'/write_update.skin.php');
@include_once($board_skin_path.'/write_update.tail.skin.php');
[/code]
이렇게 두개밖에없길래 @include_once($board_skin_path.'/write_update.head.skin.php'); 를 추가해줬습니다..
그리고 write_update.head.skin.php 에서
//$keystring = uniqid();
//set_session("ss_captcha_count", 0);
//set_session("ss_captcha_key", $keystring);
//$captcha_key = $_POST['captcha_key'] = get_session('ss_captcha_key');
를 주석처리하고 금지단어 필터링 코드를 넣었는데..
그래도 안되네요 ㅠㅠ