KBoard 글 작성시 오류문의

안녕하세요!

오늘도 몇가지 질문을 들고왔습니다 ㅜ_ㅠ

1. 특수문자 '<' 와 영문을 같이 사용하면 출력이 안되는데 '<' 를 &lt;로 변경하고싶은데 어디서 수정하면 될까요?

2. 필드를 추가한 textarea는  안그러는데 기존 kboard_content인 textarea는 엔터해서 작성하면 '<br />' 이 태그가 함께 출력됩니다.

그럼 답변 부탁드립니다!

날씨가 많이 따뜻해졌네요! 좋은하루되세요~~~

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 혹시 테스트 가능한 게시판 페이지 주소 알려주실 수 있는지요?

    테스트해봐야지 어떤 상황인지 알 듯합니다~^^

    혹시 버그가 있는지 저희 쪽에서도 테스트해보겠습니다.

  • ㅜ_ㅜ

    답변이 없으셔서 일단 다시 댓글 답니다~!!

    이 페이지에서 테스트해주시면 될 거같아요 ㅠ_ㅠ

  • http://apply.msff.or.kr/apply02/

    여기서 확인 가능하세요! 

  • 알려주신 사이트에서는 로그인 해야하는 관계로 테스트 해보지 못했습니다.

    하지만 저희나 다른 분들은 본문 내용을 textarea 로 해두고 작성해도 아무런 문제가 없는걸로 보아서 apply.msff.or.kr 사이트에 어떠한 설정이 있는 듯합니다.

    아마도 테마때문이지 않을까 합니다.

    가능하다면 다른 테마로 바꾸고 테스트 해보시겠어요?

    아니면 스킨을 수정하셨는지요?

    htmlspecialchars 함수 등을 사용하고 계신지요?

  • 흠, 테마는 커스텀이라 따로 들어가 있는 기능은 없습니다.

    스킨을 수정하긴했지만 ㅠ_ㅠ  그냥 textarea나 input만 몇개 넣었거든요~

    기존의 필드 수정 - (이부분은 변경하고싶었는데 없으면 계속 컨텐츠를 입력하라는 오류메세지가 나오더라구요)

    <textarea name="kboard_content" id="kboard_content" placeholder="<?php echo __('aaa', 'kboard')?>"><?php echo $content->content?></textarea>

    추가한 필드

    <textarea name="kboard_option_prosnobeng" id="kboard_option_prosnobeng" placeholder="<?php echo __('bbb', 'kboard')?>"><?php echo $content->option->prosnobeng?></textarea>

    이부분에 추가된 부분인데 위에 kborad_content에서만  <br/>이 츨력됩니다~
    (테스트하는 페이지 로그인 풀어두었습니다)

  • 테마를 다른 걸로 해서도 문제가 동일한지요?

    게시판은 여전히 글쓰기 테스트가 안되는군요.

    기존 textarea를 지우고 아래처럼 넣으시면 임의로 값을 입력할 수 있습니다.

    <input type="hidden" name="kboard_content" value="1234567890">

     

    사이트 하단 고객지원 쪽 이메일로 워드프레스 관리자 계정과 FTP 접속 정보를 보내주시면 점검해드리겠습니다. (원래 유상이지만 특별히 무상으로 점검해드리겠습니다.)

    서버 설정이나 테마 또는 다른 플러그인의 충돌이 원인이라면 해결이 안 될 수 있습니다.

  • 출력되는 본문 내용에서 <br /> 태그를 없애기 위해서

    스킨의 document.php 파일에서 <?php echo $content->content?> 코드를 찾아서 아래 코드로 변경했습니다.

    <?php echo preg_replace('/\<br(\s*)?\/?\>/i', "", $content->content)?>

     

    그리고

    추가한 입력 필드에서 특수문자가 정상적으로 저장되도록 htmlspecialchars 함수를 추가했습니다.

    /wp-content/plugins/kboard/class/KBContent.class.php 파일에서

    아래 굵게 표시된 코드를 추가했습니다.

    function updateOptions(){
        global $wpdb;
        if($this->uid){
            $this->option = new KBContentOption($this->uid);
            foreach($_POST as $key=>$value){
                if(strpos($key, $this->skin_option_prefix) !== false){
                    $key = sanitize_key(str_replace($this->skin_option_prefix, '', $key));
                    $value = htmlspecialchars($value);
                    $value = kboard_safeiframe(kboard_xssfilter($value));
                    $this->option->{$key} = $value;
                }
            }
        }
    }

  • 와! 감사합니다 ㅠㅠ

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요