묻고답하기
회원정보 서명란에 HTML 태그를 사용 가능하게 하고 싶습니다.
2014.05.21 00:06
XE 1.7.5 버전 사용중입니다.
./modules/member/member.controller.php line 1476...
function putSignature($member_srl, $signature) { $signature = trim(removeHackTag($signature)); $signature = preg_replace('/<(\/?)(embed|object|param)/is', '<$1$2', $signature); $check_signature = trim(str_replace(array(' ',"\n","\r"),'',strip_tags($signature,'<img><object>'))); $path = sprintf('files/member_extra_info/signature/%s/', getNumberingPath($member_srl)); $filename = sprintf('%s%d.signature.php', $path, $member_srl); if(!$check_signature) return FileHandler::removeFile($filename); $buff = sprintf('<?php if(!defined("__XE__")) exit();?>%s', $signature); FileHandler::makeDir($path); FileHandler::writeFile($filename, $buff); }
&+lt; 에서 +를 빼시면 됩니다.
$signature = preg_replace('/<(\/?)(embed|object|param)/is', '&+lt;$1$2', $signature);
(Code Highlighter에서는 <이 &+lt;로 바뀌네요.)
대시보드 - 회원 - 회원 설정 - 회원가입 - 서명에서 xpresseditor, 하얀색 텍스트(HTML 사용)으로 설정한 후
서명란에 <embed src="http://www.youtube.com/v/ytKvgLuy7ng?version=2&hl=ko_KR" type="application/x-shockwave-flash" width="300" height="25" allowscriptaccess="always" allowfullscreen="true"></embed>
라는 HTML 태그를 입력하고 저장 시 HTML로 출력되지 않고, 다시 서명을 수정하러 가 보면
&+lt;embed src="http://www.youtube.com/v/ytKvgLuy7ng?version=2&hl=ko_KR" type="application/x-shockwave-flash" width="300" height="25" allowscriptaccess="never" allownetworking="internal" />
라고 입력되어 있습니다.
member.controller.php를 수정하였더니 서명이 아예 저장이 되지 않았습니다.
HTML 태그를 사용할 수 있도록 파일들을 수정하는 방법이 없을까요?
댓글 4
-
혼마_메이코
2014.05.21 08:35
-
Holy_KBS
2014.05.21 09:52
./files/member_extra_info/signature 에서 직접 수정하면 적용이 되긴 하네요..
-
혼마_메이코
2014.05.21 10:03
DB에서 직접 적어줘도 적용이 됩니다. 이걸 이용해서 외부 작성을 한다거나 하면 됩니다.
index.php에서 다른 페이지로 빠질 수 있도록 post나 get값을 준 다음, 작업하셔도 됩니다.
-
Holy_KBS
2014.05.21 15:50
DB에서도 찾기가 힘드군요...
관리자 페이지에서 HTML 수정 기능이 있어서 이용하여 수정을 해도 텍스트로 출력이 되네요. 이런...
현재까지 허용된방법은 외부에서 수정시켜주거나, IE를 제외한 브라우저에서 복사+붙여넣기 하는 수밖에 없습니다. 가능하게 수정할 수는 있지만, 탐탁치 않은 방법인데다... 글쎄요 =_=;;