링크에도 금지단어 적용시키는 방법
본문
게시판 스킨 write.skin.php 파일 하단 부분을 아래와 같이 적용했는데
여전히 링크에는 금지단어 적용이 안되네요 ㅠㅠ
$.ajax({
url: g5_bbs_url+"/ajax.filter.php",
type: "POST",
data: {
"subject": f.wr_subject.value,
"content": f.wr_content.value,
"link": f.wr_link.value
},
dataType: "json",
async: false,
cache: false,
success: function(data, textStatus) {
subject = data.subject;
content = data.content;
link = data.link;
}
});
if (subject) {
alert("제목에 금지단어가 포함되어있습니다.");
f.wr_subject.focus();
return false;
}
if (content) {
alert("내용에 금지단어가 포함되어있습니다.");
if (typeof(ed_wr_content) != "undefined")
ed_wr_content.returnFalse();
else
f.wr_content.focus();
return false;
}
if (link) {
alert("링크에 금지단어가 포함되어있습니다.");
f.wr_link.focus();
return false;
}
진하게 처리한 부분이 제가 추가한 코드인데 혹시 제가 잘못한건가요?
답변 3
write.skin.php
.
.
.
var subject = "";
var content = "";
var link1 = "";
$.ajax({
url: g5_bbs_url+"/ajax.filter.php",
type: "POST",
data: {
"subject": f.wr_subject.value,
"content": f.wr_content.value,
"link1": f.wr_link1.value
},
dataType: "json",
async: false,
cache: false,
success: function(data, textStatus) {
subject = data.subject;
content = data.content;
link1 = data.wr_link1;
}
});
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 (link1) {
alert("링크에 금지단어('"+link1+"')가 포함되어있습니다");
f.wr_link1.focus();
return false;
}
bbs/ajax.filter.php
.
.
.
$subject = strip_tags($_POST['subject']);
$content = strip_tags($_POST['content']);
$wr_link1 = strip_tags($_POST['link1']);
//$filter = explode(",", strtolower(trim($config['cf_filter'])));
// strtolower 에 의한 한글 변형으로 아래 코드로 대체 (곱슬최씨님이 알려 주셨습니다.)
$filter = explode(",", trim($config['cf_filter']));
for ($i=0; $i<count($filter); $i++) {
$str = $filter[$i];
// 제목 필터링 (찾으면 중지)
$subj = "";
$pos = stripos($subject, $str);
if ($pos !== false) {
$subj = $str;
break;
}
// 내용 필터링 (찾으면 중지)
$cont = "";
$pos = stripos($content, $str);
if ($pos !== false) {
$cont = $str;
break;
}
// 링크 필터링 (찾으면 중지)
$link1 = "";
$pos = stripos($wr_link1, $str);
if ($pos !== false) {
$link1 = $str;
break;
}
}
die("{\"subject\":\"$subj\",\"content\":\"$cont\"\"wr_link1\":\"$link1\"}");
이런식으로 하면 되지 않을까요.. 테스트는 안해 봤습니다
그누 링크 인풋 네임값이 wr_link1 wr_link2 이렇게 나가지 않나요?
클라이언트 쪽에서 link값을 서버의 ajax.filter.php에 던져 주면
그 파일에서 처리후 다시 클라이언트로 던져 주는 것에
link라는 요소가 있어야 하는데 서버쪽 ajax.filter.php 파일에서 처리를 하셨나요?
그래서 json내에 link라는 요소가 있어야 이쪽에서 처리가 가능할텐데 그렇지 못한 듯 보이는데요.