금지단어 필터링 정말.. 제발요 ㅠㅠ

금지단어 필터링 정말.. 제발요 ㅠㅠ

QA

금지단어 필터링 정말.. 제발요 ㅠㅠ

본문


<?php
    add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_CSS_URL.'/main.css?ver='.G5_CSS_VER.'">', 0);
?>
<script type="text/javascript">
function checkFrm(obj) {
if(obj.wr_6.checked == false) {
  alert('개인정보 활동동의에 체크해주세요.');
  obj.wr_6.focus();
  return false;
 }
}
</script>
<div class="form-box" >
  <form name="frm" method="post" action="/bbs/write_update.php" onsubmit="return checkFrm(this);">
        <input type="hidden" name="token" value=<?php echo get_write_token('online') ?>> 
        <input type=hidden name="bo_table" value="online">
        <input type=hidden name="wr_7" value="">
        <input type=hidden name="wr_8" value="">
        <input type=hidden name="wr_9" value="">
        <input type=hidden name="wr_10" value="">
        <input type=hidden name="wr_name" value="관리자">
        <input type=hidden name="wr_subject">
        <input type=hidden name="wr_content" value="">
        <div class="form-con">
            <ul>
                <li class="input_box box2">
                    <input type="text" name="wr_subject" placeholder="이름" required itemname="이름"/>
                </li>
                <li class="input_box box1">
                    <select name="wr_7" id="" class="select-1" required itemname="연락처">
                        <option value="010">010</option>
                        <option value="011">011</option>
                        <option value="016">016</option>
                        <option value="017">017</option>
                        <option value="018">018</option>
                        <option value="019">019</option>
                    </select>
                    <input type="text" name="wr_8" maxlength="4" required itemname="연락처"/>
                    <input type="text" name="wr_9" maxlength="4" required itemname="연락처"/>
                </li>
                <li class="text_box">
                    <textarea name="wr_content" id="" cols="30" rows="10" placeholder="상담내용" required itemname="문의내용"></textarea>
                </li>
            </ul>
            <div class="provision">
                <label for="provision-check">
                    <input id="provision-check" type="checkbox" name="wr_6" value="6" <?=$write[wr_6]?>/>
                    <span><a href="/bbs/content.php?co_id=privacy" target="_blank">개인정보취급방침</a>을 읽었으며 내용에 동의합니다.</span>
                </label>
            </div>
        </div>
        <div class="receive-btn">
            <input name="image" type="submit" value="상담신청하기" alt="상담신청하기" id="btn_submit" />
        </div>        
  </form>
</div>
<script>
    <?php if($write_min || $write_max) { ?>
    // 글자수 제한
    var char_min = parseInt(<?php echo $write_min; ?>); // 최소
    var char_max = parseInt(<?php echo $write_max; ?>); // 최대
    check_byte("wr_content", "char_count");
    $(function() {
        $("#wr_content").on("keyup", function() {
            check_byte("wr_content", "char_count");
        });
    });
    <?php } ?>
    function html_auto_br(obj)
    {
        if (obj.checked) {
            result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
            if (result)
                obj.value = "html2";
            else
                obj.value = "html1";
        }
        else
            obj.value = "";
    }
    function checkFrm(f)
    {
        <?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함   ?>
        var subject = "";
        var content = "";
        $.ajax({
            url: g5_bbs_url+"/ajax.filter.php",
            type: "POST",
            data: {
                "subject": f.wr_subject.value,
                "content": f.wr_content.value
            },
            dataType: "json",
            async: false,
            cache: false,
            success: function(data, textStatus) {
                subject = data.subject;
                content = data.content;
            }
        });
        if (subject) {
            alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");
            f.wr_subject.focus();
            return false;
        }
        if (content) {
            alert("내용에 금지단어('"+content+"')가 포함되어있습니다");
            if (typeof(ed_wr_content) != "undefined")
                ed_wr_content.returnFalse();
            else
                f.wr_content.focus();
            return false;
        }
        if (document.getElementById("char_count")) {
            if (char_min > 0 || char_max > 0) {
                var cnt = parseInt(check_byte("wr_content", "char_count"));
                if (char_min > 0 && char_min > cnt) {
                    alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");
                    return false;
                }
                else if (char_max > 0 && char_max < cnt) {
                    alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");
                    return false;
                }
            }
        }
        <?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함  ?>
        document.getElementById("btn_submit").disabled = "disabled";
        return true;
    }
    </script>
<script>
    jQuery('#selectBox').change(function() {
        var state = jQuery('#selectBox option:selected').val();
        if ( state == 'option2' ) {
            jQuery('.layer').show();
        } else {
            jQuery('.layer').hide();
        }
    });
</script>
<!--//-->

 

위의 코드는 메인페이지에서 사용하고있는 간편상담 폼의 php파일입니다.

 

이 파일에서 글을쓰면 online이라는 테이블명의 게시판으로 가게됩니다.

 

일반게시판과는 달리 write.skin.php라는 페이지에서 글을쓰지않고 일반 php파일에서 글을쓰면 게시판으로 내용이 넘어가게끔 만들어진 skin이죠

https://sir.kr/g5_skin/25290?sfl=wr_subject%7C%7Cwr_content&stx=%EC%83%81%EB%8B%B4#c_29795

바로 이 스킨입니다.

 

금지단어 필터링을 글쓰는곳에 저렇게 넣으면 된다고해서 넣었는데 어떻게된건지 되지가않습니다..

 

function checkFrm(f) 이부분만 고쳤거든요!

onsubmit="return checkFrm(this);" 이렇게 되어있어서요 ㅠㅠ

뭐가잘못된걸까요.. 며칠째 이러고있습니다..ㅠㅠ

 

이 질문에 댓글 쓰기 :

답변 1

write 부분은 write.update.php 활용하시면 되실텐데..

일단 아래소스 확인하셔서 응용하시면될것 같네요.

 

 

$cover_word = "*"; 
$Filter = "금지단어,쉼표로구분";

function StrFilter($Text, $Type)
{
GLOBAL $Filter;
GLOBAL $cover_word;

if ($Filter!=""&&$Text!="")
{
$ndwords=array();
$mdeny_words=explode(",",$Filter);
foreach ($mdeny_words as $rdwords)
{
$rdwords = iconv("EUC-KR", "UTF-8",$rdwords);
       $r_deny_words = str_repeat("$cover_word", mb_strlen(iconv("UTF-8","EUC-KR",$rdwords)));
       $ndwords[$rdwords] = "$r_deny_words";
   }

$Text = iconv("EUC-KR","UTF-8",$Text);
$r = strtr($Text,$ndwords);
$r = iconv("UTF-8","EUC-KR", $r);

}
else
{
$r=$Text;
}
return $r;
}

답변을 작성하시기 전에 로그인 해주세요.
전체 123,529 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT