여유필드에서도 단어 필터링을 사용하고 싶어요 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

여유필드에서도 단어 필터링을 사용하고 싶어요 정보

여유필드에서도 단어 필터링을 사용하고 싶어요

본문

여유필드를 약 20개 정도 추가해 놨습니다.
wr_1~20 까지인데요.
이게 본문쪽에 들어가는 내용이라..
단어 필터링을 하고 싶어요.
사실은 특정단어가 들어가 있으면 포커스를 주게 할려고 합니다.
마땅한 방법이 없을까요?

아래는 입력한 소스에요~

var fwr_1  = "";

    $.ajax({
        url: "<?=$board_skin_path?>/ajax.filter.php",
        type: "POST",
        data: {
            "subject": f.wr_subject.value,
            "content": f.wr_content.value,
    "fwr_1": f.wr_1.value

        },
        dataType: "json",
        async: false,
        cache: false,
        success: function(data, textStatus) {
            subject = data.subject;
            content = data.content;
            fwr_1 = data.fwr_1;
        }
    });

    if (fwr_1) {
        alert("여유필드1에 금지단어가 포함되어있습니다.");
        f.wr_1.focus();
        return false;
    }

그리고 ajax.filter.php 파일 수정내용입니다.


<?
include_once("./_common.php");

if (!function_exists('convert_charset'))
{
    /*
    -----------------------------------------------------------
        Charset 을 변환하는 함수
    -----------------------------------------------------------
    iconv 함수가 있으면 iconv 로 변환하고
    없으면 mb_convert_encoding 함수를 사용한다.
    둘다 없으면 사용할 수 없다.
    */
    function convert_charset($from_charset, $to_charset, $str)
    {

        if( function_exists('iconv') )
            return iconv($from_charset, $to_charset, $str);
        elseif( function_exists('mb_convert_encoding') )
            return mb_convert_encoding($str, $to_charset, $from_charset);
        else
            die("Not found 'iconv' or 'mbstring' library in server.");
    }
}

header("Content-Type: text/html; charset=$g4[charset]");

$fwr_1 = strtolower($_POST['fwr_1']);

//euc-kr 일 경우 $config['cf_filter'] 를 utf-8로 변환한다.
if (strtolower($g4[charset]) == 'euc-kr')
{
    //$subject = convert_charset('utf-8', 'cp949', $subject);
    //$content = convert_charset('utf-8', 'cp949', $content);
    $config['cf_filter'] = convert_charset('cp949', 'utf-8', $config['cf_filter']);
}

//$filter = explode(",", strtolower(trim($config['cf_filter'])));
// strtolower 에 의한 한글 변형으로 아래 코드로 대체 (곱슬최씨님이 알려 주셨습니다.)
$filter = explode(",", trim($config['cf_filter']));
for ($i=0; $i<count($filter); $i++)
{
    $str = $filter[$i];

  $wr1 = "";
    $pos = strpos($fwr_1, $str);
    if ($pos !== false)
    {
        if (strtolower($g4[charset]) == 'euc-kr')
            $wr1 = convert_charset('utf-8', 'cp949', $str);//cp949 로 변환해서 반환
        else
            $wr1 = $str;
        break;
    }
}

die("{\"subject\":\"$subj\",\"content\":\"$cont\",\"frw_1\":\"$wr1\"}");
?>
  • 복사

댓글 전체

감사합니다.
그런데.. ajax.filter.php 에 같은 내용을 추가했는데요. subject 쪽을 여유필터쪽으로요. 하지만 변화는 없는것 같습니다. 혹시
스킨폴더에 있는거 말고 다른파일 수정할게 있나요?
© SIRSOFT
현재 페이지 제일 처음으로