악성태그 변환 함수에 레벨 추가하려는데요.

// 악성태그 변환
function bad_tag_convert($code)
{
global $view;
global $member, $is_admin;

if ($is_admin && $member[mb_id] != $view[mb_id]) {
//$code = preg_replace_callback("#(\<(embed|object)[^\>]*)\>(\<\/(embed|object)\>)?#i",
// embed 또는 object 태그를 막지 않는 경우 필터링이 되도록 수정
$code = preg_replace_callback("#(\<(embed|object)[^\>]*)\>?(\<\/(embed|object)\>)?#i",
create_function('$matches', 'return "<div class=\"embedx\">보안문제로 인하여 관리자 아이디로는 embed 또는 object 태그를 볼 수 없습니다. 확인하시려면 관리권한이 없는 다른 아이디로 접속하세요.</div>";'),
$code);
}

//return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>/i", "<$1$2$3>", $code);
// script 나 iframe 태그를 막지 않는 경우 필터링이 되도록 수정
return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>?/i", "<$1$2$3>", $code);
}



이 소스가 너무 불편해서 조금 수정하려고 하는데요.
레벨 3 이상인 사람의 글이면 관리자도 바로 동영상을 볼 수 있고
레벨 3 이상이 글을 쓰면 script나 iframe 모두 가능하게 하려고 하거든요.

첫번째 if 문으로
if($is_admin && 글쓴이레벨 < 3 )

마지막 줄에 if 문 추가해서
if(글쓴이레벨 < 3) 마지막줄;

이런식으로 수정하려고 하거든요.
근데 $member[mb_id]가 로그인한 사람 아이디인 것 같고
$view[mb_id]가 글쓴 사람 아이디인 것 같은데 맞나요?

그리고 글쓴 사람 레벨을 확인하려면 변수(?)를 어떻게 써야하죠?
$member[$view[mb_id]_level] 뭐 이런식으로 써야하나요?
$view[mb_level] 요건 안되는 것 같던데..

수정 방법 부탁드립니다!
|

댓글 4개

글쓴이 레벨이 틀려서 수정합니다. ^^;

$view[mb_id]가 글쓴 사람 아이디인 것 같은데 맞나요? ==> 네 맞습니다.

그리고 글쓴 사람 레벨을 확인하려면 변수(?)를 어떻게 써야하죠?
==>
$w_mb = get_member($view[mb_id]);
$w_mb[mb_level]; // <== 이것이 글쓴이 레벨입니다. ^^;
빠른 답변 진심으로 감사드립니다.
get_member를 해주는 거군요.

근데 한가지 문제가 발생해서요..

if($is_admin && $w_mb[mb_level] < 3)
이렇게 이것만 수정했더니 원하던대로 레벨2가 올린 동영상은
문구가 뜨면서 바로 확인할 수 없었고 레벨3이 올린 동영상은 바로 확인할 수 있었습니다.

그리고 나서 아래에
if($w_mb[mb_level] < 3)
return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>?/i", "<$1$2$3>", $code);

이렇게 수정해주고 iframe 테스트를 해봤는데요.
이렇게 하고나니까 레벨 2가 쓴 글은 정상적으로 iframe이 텍스트로 뜨는데
레벨 3이 쓴 글은 아예 아무것도 나오지 않습니다.
iframe을 써서 안 나오는 건 줄 알았는데 동영상 올린 것도 안 나오더라고요.
운영자가 봐도 안 나오고 자기 자신이 봐도 안 나옵니다.
혹시 왜 그런지 알 수 있을까요..
혹시 마지막 조건문의 else 인경우, return $code를 해주셨는지요..
그렇지 않으면, 레벨이 3이상인 경우는 아무것도 리턴을 하지 않을것 같네요. ^^
기본적으로 code는 무조건 리턴하는데
script, iframe 쓰인 경우만 텍스트로 뽑는 소스인 줄 알았는데 아니었나보네요.

덕분에 해결했습니다.
빠르고 정확한 답변 주셔서 정말 감사드립니다!
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

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

+
제목 글쓴이 날짜 조회
13년 전 조회 1,072
13년 전 조회 763
13년 전 조회 1,054
13년 전 조회 1,544
13년 전 조회 1,050
13년 전 조회 1,381
13년 전 조회 1,995
13년 전 조회 3,833
13년 전 조회 1,590
13년 전 조회 1,553
13년 전 조회 1,709
13년 전 조회 981
13년 전 조회 968
13년 전 조회 1,539
13년 전 조회 1,567
13년 전 조회 861
13년 전 조회 1,426
13년 전 조회 1,077
13년 전 조회 1,513
13년 전 조회 1,657