b2config.php 를 열어서 차단할 단어의 목록을 추가합니다.
$badwords = array("성인","포르노","미시"); // 같은 방식으로 쭈욱 추가합니다. 대놓고 쓰기 민망한 단어가 많아서-_-
b2comments.post.php를 열어서 우선 아스키->HEX함수를 낑가넣습니다. 전 dbconnect();바로 아래 넣었습니다만...
#아스키->HEX
function asc_hex($char) {
$j = 0;
$word_length=strlen($char);
for($i = 0;$i< $word_length;$i++) {
if($j == 0) {
if(ord(substr($char,$i,1)) > 0xa1 && ord(substr($char,$i,1)) < = 0xfe) {
$j = 1;
$t_char = $t_char.bin2hex(substr($char,$i,1));
}
else {
$t_char = $t_char."00".bin2hex(substr($char,$i,1))." ";
}
}
else {
$t_char = $t_char.bin2hex(substr($char,$i,1))." ";
$j = 0;
}
}
return $t_char;
}
function asc_hex($char) {
$j = 0;
$word_length=strlen($char);
for($i = 0;$i< $word_length;$i++) {
if($j == 0) {
if(ord(substr($char,$i,1)) > 0xa1 && ord(substr($char,$i,1)) < = 0xfe) {
$j = 1;
$t_char = $t_char.bin2hex(substr($char,$i,1));
}
else {
$t_char = $t_char."00".bin2hex(substr($char,$i,1))." ";
}
}
else {
$t_char = $t_char.bin2hex(substr($char,$i,1))." ";
$j = 0;
}
}
return $t_char;
}
그리고,
"comment" || $comment == "") {
echo "Error: please type a comment";
exit;
}
이 부분을 찾은후 이 아래에 다음의 내용을 추가합니다.
echo "Error: please type a comment";
exit;
}
이 부분을 찾은후 이 아래에 다음의 내용을 추가합니다.
foreach( $badwords as $bad ) {
#코멘트 본문에 URL 입력할때 대소문자 안가리고 필터링하기 위해 strtolower 추가.
$comment_lower=strtolower($comment);
if(strstr(asc_hex($comment_lower), asc_hex($bad))) {
echo "<script> alert('[".$bad."] 은 사용하실 수 없는 문구입니다.'); history.go(-1); </script>";
exit;
}
}
잘 안되면.... -_-되게 고친담에 저한테도 알려주세요-_-;;
늘 그렇듯이 백업필수! 모든 책임은 자기 자신에게!!
참고 : tab을 html로 고치기 난감해서 텍스트파일로 만들어 놨습니다.