본문에 동영상 iframe 사용하기 (2014-12-24 수정) 정보
본문에 동영상 iframe 사용하기 (2014-12-24 수정)관련링크
본문
2014-12-24 추가
관리자일때는 object 와 embed가 필터링 되는 것도 아래 동영상 주소에서 송출되는 것은 가능하도록 추가했습니다.
- 유튜브 : youtu.be / youtube.com
- Vimeo : vimeo.com
- 네이버 : nmv.naver.com / MovieFlvPlayer.nhn
- 다음 : videofarm.daum.net
그누보드 / lib / common.lib.php
// 악성태그 변환
function bad_tag_convert($code)
{
...
}
를 아래와 같이 변경
// 악성태그 변환
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 태그를 막지 않는 경우 필터링이 되도록 수정
if (!preg_match('/youtu.be/', $_SERVER['SERVER_NAME']) == true || !preg_match('/youtube.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/vimeo.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/videofarm.daum.net/', $_SERVER['SERVER_NAME']) == true || !preg_match('/rmcnmv.naver.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/nmv.naver.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/MovieFlvPlayer.nhn/', $_SERVER['SERVER_NAME']) == true) { } else { $code = preg_replace_callback("#(\<(embed|object)[^\>]*)\>?(\<\/(embed|object)\>)?#i",
create_function('$matches', 'return "<div class=\"embedx\">보안문제로 인하여 관리자 아이디로는 embed 또는 object 태그를 볼 수 없습니다. 확인하시려면 관리권한이 없는 다른 아이디로 접속하세요.</div>";'),
$code); } // 해피정닷컴 2014-12-24
}
//return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>/i", "<$1$2$3>", $code);
// script 나 iframe 태그를 막지 않는 경우 필터링이 되도록 수정
if (!preg_match('/youtu.be/', $_SERVER['SERVER_NAME']) == true || !preg_match('/youtube.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/vimeo.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/videofarm.daum.net/', $_SERVER['SERVER_NAME']) == true || !preg_match('/rmcnmv.naver.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/nmv.naver.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/MovieFlvPlayer.nhn/', $_SERVER['SERVER_NAME']) == true) { return preg_replace("/\<([\/]?)(script)([^\>]*)\>?/i", "<$1$2$3>", $code); } else { return preg_replace("/\<([\/]?)(script|iframe|form|applet)([^\>]*)\>?/i", "<$1$2$3>", $code); } // 해피정닷컴 2014-12-24
}
관리자일때는 object 와 embed가 필터링 되는 것도 아래 동영상 주소에서 송출되는 것은 가능하도록 추가했습니다.
- 유튜브 : youtu.be / youtube.com
- Vimeo : vimeo.com
- 네이버 : nmv.naver.com / MovieFlvPlayer.nhn
- 다음 : videofarm.daum.net
그누보드 / lib / common.lib.php
// 악성태그 변환
function bad_tag_convert($code)
{
...
}
를 아래와 같이 변경
// 악성태그 변환
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 태그를 막지 않는 경우 필터링이 되도록 수정
if (!preg_match('/youtu.be/', $_SERVER['SERVER_NAME']) == true || !preg_match('/youtube.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/vimeo.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/videofarm.daum.net/', $_SERVER['SERVER_NAME']) == true || !preg_match('/rmcnmv.naver.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/nmv.naver.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/MovieFlvPlayer.nhn/', $_SERVER['SERVER_NAME']) == true) { } else { $code = preg_replace_callback("#(\<(embed|object)[^\>]*)\>?(\<\/(embed|object)\>)?#i",
create_function('$matches', 'return "<div class=\"embedx\">보안문제로 인하여 관리자 아이디로는 embed 또는 object 태그를 볼 수 없습니다. 확인하시려면 관리권한이 없는 다른 아이디로 접속하세요.</div>";'),
$code); } // 해피정닷컴 2014-12-24
}
//return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>/i", "<$1$2$3>", $code);
// script 나 iframe 태그를 막지 않는 경우 필터링이 되도록 수정
if (!preg_match('/youtu.be/', $_SERVER['SERVER_NAME']) == true || !preg_match('/youtube.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/vimeo.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/videofarm.daum.net/', $_SERVER['SERVER_NAME']) == true || !preg_match('/rmcnmv.naver.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/nmv.naver.com/', $_SERVER['SERVER_NAME']) == true || !preg_match('/MovieFlvPlayer.nhn/', $_SERVER['SERVER_NAME']) == true) { return preg_replace("/\<([\/]?)(script)([^\>]*)\>?/i", "<$1$2$3>", $code); } else { return preg_replace("/\<([\/]?)(script|iframe|form|applet)([^\>]*)\>?/i", "<$1$2$3>", $code); } // 해피정닷컴 2014-12-24
}
추천
0
0
댓글 15개
감사합니다.
갑작스럽게 iframe 을 사용해야할 필요가 있는데, 팁을 찾아보니 관리자만 가능하게 된것이 아니라서, 정리해봤습니다.
감ㅅㅏ합니다
관리자는 등록은 가능한데. 등록 후 일반 사용자에게는 태그로 보이게 되네요..
관리자 등록, 사용자 는 내용을 보기만 가능할 방법이 없을까요??
관리자 등록, 사용자 는 내용을 보기만 가능할 방법이 없을까요??
방금 확인하니 그렇군요. 방법을 찾은후 내용을 변경하도록 하겠습니다.
본문에 iframe 사용시 테그로 전환되는 문제가 있어서, 유튜브 동영상 삽입할때만 iframe 사용가능한 내용으로 팁을 변경했습니다.
관리자일때 object 와 embed 동영상 테그로 보여지는 것이 가능하도록 했습니다.
우왕... 좋은자료 감사합니다.
끝에
} 이부분 확인하세요. 전 그냥 이부분 붙이기 해서 에러났어요 ^^;;
} 이부분 확인하세요. 전 그냥 이부분 붙이기 해서 에러났어요 ^^;;
그렇군요. 마지막에 } 가 누락되었습니다.
링크의 강좌에는 } 가 포함되어 있는데
복사해서 이곳에 넣는 과정에서 누락되었나봅니다.
수정했습니다.
링크의 강좌에는 } 가 포함되어 있는데
복사해서 이곳에 넣는 과정에서 누락되었나봅니다.
수정했습니다.
고맙습니다.
유용한 자료인 것 같아 스크립합니다.
그누보드 4.34.20 (2012.03.02) 버전을 사용하고 있는데, 알려주신 대로 common.lib.php 파일을 고치니까 에라가 나고, 게시판 자체를 쓸 수가 없네요. 혹시 정상적인 파일을 구할 수는 없을까요?
마지막에 } 누락된것이 확인되어 수정했습니다.
다시 확인해서 사용해보세요
다시 확인해서 사용해보세요
방금 알려주신대로 고쳐봤는데, 잘 됩니다. 감사합니다. ^^