개발 Q&A

제목 스마트 에디터 적용 문제 도와주세요
글쓴이 싸이클로크로스 작성시각 2015/11/23 21:01:05
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 15622   RSS
밑에 글을 적었는데 제가 질문내용을 잘 못 적은 것 같아서 다시 올리게 되었습니다.

제가 사용한 에디터는 네이버 스마트 에디터 입니다.

제가 지금 겪고 있는 오류는 글쓰기 페이지에서 에디터를 적용시켜서 글을 쓰는 것은 성공하였습니다.

디비에도 정확이 들어 갔습니다.

문제는 쓴 글을 read할 때 font변경된 것이 적용이 되지 않고 일반적인 글씨체로 조회가 됩니다.

저는 제가 글을 쓸대 폰트변경과 크기변경이 적용된 상태로 글을 읽고 싶습니다.

어떤 부분이 잘못되었는지 감이 잘오지않아서 질문을 남기게 되었습니다.

어떻게 하면 글을 읽을 때에도 변경된 사항을 적용하는 건가요??

소스를 올려보겠습니다.

write_v.php
form class="form-horizontal" method="post" action="" id="writeblog">
   <script type="text/javascript" src="/todo/include/js/HuskyEZCreator.js" charset="utf-8"></script>
<?php echo validation_errors(); ?>
        <fieldset>
          <div class="control-group">
            <label class="control-label" for="input01">제목</label>
            <div class="controls">
               <input type="text" class="input-xlarge" id="input01" name="title" style="width:50%" value="<?php echo set_value('title');?>">
               <p class="help-block">제목을 써주세요</p>
               <ul class="dropdown-menu">
                  <li><a href="#">PHP</a></li>
                  <li><a href="#">MYSQL</a></li>
                  <li><a href="#">TOEIC</a></li>
                </ul>
               </div>
         <!--            <label class="control-label" for="input02">userid</label>
            <div class="controls">
             <input type ="text" class="input-xlarge" id="input02"  name="username" style="width:50%">
              <p class="help-block"></p>
              </div> -->
                       <label class="control-label" for="input03">pass</label>
            <div class="controls">
             <input type ="password" class="input-xlarge" id="input03"  name="pass" style="width:50%">
              <p class="help-block"></p>
              </div>
                       <label class="control-label" for="input04">cate</label>
            <div class="controls">
            <select name="cate">
            <option value="php">php</option>
            <option value="mysql">mysql</option>
            <option value="toeic">toeic</option>
            </select>
             <!-- <input type ="text" class="input-xlarge" id="input04"  name="cate" style="width:50%">
              <p class="help-block"></p> -->
              </div>
        <label class="control-label" for="intput05">내용</label>
            <div class="controls">
            <textarea  class="input-xlarge" id="input05" name="content" rows="10" style="width:50%">
            <?php echo set_value('content');?>
            </textarea>
            <p class ="help-block"></p>
            </div>
        
          <div class="form-actions">
         
              <button type="submit" class="btn btn-primary" id="write_btn" onclick="submitContents()">작성</button>
              <button class="btn btn-warning" onclick="document.location.reload()">취소</button>
              </div>
              </fieldset>
                <script type="text/javascript">
            var oEditors = [];
            nhn.husky.EZCreator.createInIFrame({
            oAppRef: oEditors,
            elPlaceHolder: "input05",
            sSkinURI: "/todo/include/SmartEditor2Skin.html",
            fCreator: "createSEditor2"
            });
            </script>
             <script>
            function submitContents() {
                // 에디터의 내용이 textarea에 적용된다.
                oEditors.getById["input05"].exec("UPDATE_CONTENTS_FIELD", []);
                var write=document.getElementById("write_btn");
             try
             {
                 write.form.submit();
             }
             catch(e)
             {
                 alert('error');
             }
             }
               
            </script>
              </form>
        이상이 글 쓰기 부분입니다.

글읽기 부분은 
 <?php $this->output->enable_profiler(true);?>
                <?php echo $views->content;?>
                <?php echo $views->hit;?>
                
                <form class="form-horizontal" method="post" action="" name="com_add"?>
                    <fieldset>
                    <div class="control-group">
                        <label class="control-label" for="input01">댓글</label>
                        <div class="controls">
                           <textarea class="input-xlarge" id="input01" name="comment_contents" rows="3" style="width:50%">
                             </textarea>
                             </div>
                <input class="btn btn-primary" type="button" id="comment_add()" value="작성">
                    <p class="help-block"></p>
                    </div>
                    </div>
                    </fieldset>
                    </form>


               
                </article>
이렇게 간단한 구조입니다 뭐가 잘못된 건가요?
 다음글 jquery submit()이 먹히질 않습니다.. (2)
 이전글 절대경로 상대경로 속도차이 (2)

댓글

kaido / 2015/11/24 11:51:52 / 추천 0
에디터로 글을 쓰고 글씨체가 정상적으로 나타나지 안 되는 경우는 한 가지 밖에 없습니다.
XSS 필터에 태그가 삭제 되는 경우 입니다.

input05 값을 찍어보시면 태그가 빠져있을 것입니다.

태그도 정상인데 제대로 안 나타난다면 css에서 컨트롤 했을수는 있지만 가능성은 적어 보이는 군요.
싸이클로크로스 / 2015/11/24 17:13:49 / 추천 0
댓글 달아주신대로 확인해보니 <span xss="remove">라고 뜨는데 어떻게 해야 해결할수있나요?
kaido / 2015/11/25 08:41:42 / 추천 0
config.php 에서 

$config['global_xss_filtering'] = FALSE; 전역 xss 기능 꺼놓고

$this->input->post('input05', false); //xss 기능 사용 안함 으로 받으시면 됩니다.

이렇게되면 xss에 취약해 지니 xss 필터 라이브러리등을 넣습니다.

htmlpurifier 같은 것이 있는데

원해는 태그만 오픈하고 나머지는 차단 하는 형식으로 사용 합니다.