테스트 사이트 - 개발 중인 베타 버전입니다

금지단어 필터링 정말.. 제발요 ㅠㅠ 채택완료

이양엇 6년 전 조회 5,471

</p>

<p><?php

    add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_CSS_URL.'/main.css?ver='.G5_CSS_VER.'">', 0);

?></p>

<p><script type="text/javascript">

function checkFrm(obj) {

if(obj.wr_6.checked == false) {

  alert('개인정보 활동동의에 체크해주세요.');

  obj.wr_6.focus();

  return false;

 }

}

</script></p>

<p><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></p>

<p><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");</p>

<p>    $(function() {

        $("#wr_content").on("keyup", function() {

            check_byte("wr_content", "char_count");

        });

    });</p>

<p>    <?php } ?>

    function html_auto_br(obj)

    {

        if (obj.checked) {

            result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을
태그로 변환하는 기능입니다.");

            if (result)

                obj.value = "html2";

            else

                obj.value = "html1";

        }

        else

            obj.value = "";

    }</p>

<p>    function checkFrm(f)

    {

        <?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함   ?></p>

<p>        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;

            }

        });</p>

<p>        if (subject) {

            alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");

            f.wr_subject.focus();

            return false;

        }</p>

<p>        if (content) {

            alert("내용에 금지단어('"+content+"')가 포함되어있습니다");

            if (typeof(ed_wr_content) != "undefined")

                ed_wr_content.returnFalse();

            else

                f.wr_content.focus();

            return false;

        }</p>

<p>        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;

                }

            }

        }</p>

<p>        <?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함  ?></p>

<p>        document.getElementById("btn_submit").disabled = "disabled";</p>

<p>        return true;

    }

    </script></p>

<p><script>

    jQuery('#selectBox').change(function() {

        var state = jQuery('#selectBox option:selected').val();

        if ( state == 'option2' ) {

            jQuery('.layer').show();

        } else {

            jQuery('.layer').hide();

        }

    });

</script>

<!--//--></p>

<p>

 

위의 코드는 메인페이지에서 사용하고있는 간편상담 폼의 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" rel="nofollow">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; }

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

이양엇
6년 전
*로 커버되는게 아니라 아예 전송이 안되게끔 하고싶습니다 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인