여유필드에서도 단어 필터링을 사용하고 싶어요 정보
여유필드에서도 단어 필터링을 사용하고 싶어요본문
여유필드를 약 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\"}");
?>
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 에도 내용추가해주셔야 합니다.
감사합니다.
그런데.. ajax.filter.php 에 같은 내용을 추가했는데요. subject 쪽을 여유필터쪽으로요. 하지만 변화는 없는것 같습니다. 혹시
스킨폴더에 있는거 말고 다른파일 수정할게 있나요?
그런데.. ajax.filter.php 에 같은 내용을 추가했는데요. subject 쪽을 여유필터쪽으로요. 하지만 변화는 없는것 같습니다. 혹시
스킨폴더에 있는거 말고 다른파일 수정할게 있나요?