login register Sysop! about ME  

2017년 04월 05일 11시 37분 00초,     조회수 : 743
  제목 : 고수님들 도와주세요. 게시판 이용에서 내용만 콤마(,)를 기준으로 두번 저장됩니다.
SEQ : 163818 글쓴이 : mjdh1867

작성 포맷 : TEXT 모드, 자동 줄바꿈 사용

게시판 에디터로는 다음 에디터를 쓰고 있고,
게시글이 저장이나 수정이 되면 가끔씩 내용만 콤마(,)를 기준으로 두번 저장되는 현상이 있습니다.

예를 들면,

-------------------------------------------
[글제목] 블라블라블라블라블라
작성일 작성자 조회수
_________________________
[내용칸]
게시글 내용입니다 ,
게시글 내용입니다
-------------------------------------------

이런 형태로 실제 내용은 [게시글 내용입니다] 이부분이 전부인데 콤마하고 다시 내용이 또 나옵니다.



[CODE]

입력 페이지

<tr>
	   <td colspan="2" class="alignC">
	   	   <textarea id="contents_source" style="display:none;"><%=content%></textarea>
	   	   <div id="con_div">
	   	   	   <%
	   	   	   	   Response.Cookies("idx") = varIdx
	   	   	   	   Response.Cookies("item") = "content"
	   	   	   	   Response.Cookies("itit") = "내용"
	   	   	   	   Server.Execute(includePath & "/js/daumeditor/editor.asp")
	   	   	   %>
	   	   </div>
	   	   <p class="mgt10 alignL pd20">* 본 게시판에 성명, 고유식별번호(주민번호, 학생번호, 외국인등록번호),
고교명, 연락처, 주소 등의 개인정보입력 시 정보유출로 인한 불이익이 발생할 수 있으니 조심하시기 바라
며, 본 대학은 이에 대해 책임지지 않습니다. </p>
	   </td>
</tr>

<a href="#" id="submitBtn" class="btnTypeA">신청하기</a>

<script>
$(document).ready(function(){

	   $(document).on('click', '#submitBtn', function(){
	   	   
	   	   var varFrm = $('#fn_Form');
	   	   var varAction = varFrm.attr('action');
	   	   var varData = varFrm.serialize();
	   	   
	   	   var options = { url : varAction, data : varData, method : 'POST' };
	   	   fn_ajax(options);
	   	   
	   	   return false;
	   });
});
</script>


저장 페이지

Dim content : content = URLDecode(request("content"))

content = replace(content, "&", "&amp;")
content = replace(content,"""","&quot;") 
content = replace(content,"'","&#039;")
content = replace(content, "<", "&lt;")
content = replace(content, ">", "&gt;")

이 후 저장 쿼리가 실행됩니다. (저장 쿼리에는 문제가 없는 것같습니다.)

'-----------------------------------------------
' 함수명 : url decode
'-----------------------------------------------
FUNCTION URLDecode(str)
	   Dim objScript
	   Set objScript = Server.CreateObject("ScriptControl")
	   objScript.Language = "JavaScript"
	   URLDecode = objScript.Eval("decodeURIComponent(""" & str & """.replace(/\+/g,"" ""))")
	   Set objScript = NOTHING
END Function




에디터 파일


<%
Dim idx : idx = Request.Cookies("idx") : Response.Cookies("idx") = ""
Dim item : item = Request.Cookies("item") : Response.Cookies("item") = ""
Dim itemTitle : itemTitle = Request.Cookies("itit") : Response.Cookies("itit") = ""
%>
<div class="body">
	   <!-- 에디터 시작 -->
	   	   <!-- 에디터 컨테이너 시작 -->

==============이렇게 시작하고 에디터 내용은 동일합니다. =============

</div>
<!-- 에디터 끝 -->

function setForm(editor) {
        var i, input;
        var form = editor.getForm();
        var content = editor.getContent();

        // 본문 내용을 필드를 생성하여 값을 할당하는 부분
        var textarea = document.createElement('textarea');
        textarea.name = '<%=item %>';
        textarea.title = '<%=itemTitle %>';
        textarea.value = encodeURIComponent(content);
        textarea.style.cssText = 'width:0px;height:0px;';
	   	   textarea.style.display = 'none';
        form.createField(textarea);

... }







============================== 문의 내용

어디서 문제가 있는 걸까요?
게시글 자체가 두 개 저장 되는 것이 아니라
내용부분만 두 번 저장 됩니다.

하나의 게시글에 내용만 [원본내용 + 콤마(,) + 두번째 내용] 이렇게 됩니다.

서버에서 운영되는 홈페이지에서 이 현상을 발견하여 로컬에서 확인해보고자 했는데 로컬에서는 아직 발견
하지못했습니다.
이게 서버의 문제가 될 수 도 있는 것인가요?

아니면 코드에서 뭔가 문제가 있는 것인가요?

도움 부탁드립니다. ㅠㅠ

  rokmb841
  2017-04-05(13:28)
캐릭 이미지
해당 현상은 프론트사이드 스크립트 단에서 발생하는 것 같습니다.
자바스크립트 에디터 사용 시 네트웍 지연이나 저장버튼 연속 클릭으로 글자체가 2번 등록
될 수 도 있고 지금 현상처럼 내용값만 중복 인식되어 배열형태로 DB에 저장이 되는 현상
이 있을수 있습니다.

디버깅 하실때 위부터 아래로 내용변수에 값이 정상적으로 할당이 되는지 확인하시면 좋을
것 같습니다.

페이지간 데이터 전송이 폼전송이 아닌 쿠키를 이용하는건 좀 색다르네요.

  mjdh1867
  2017-04-05(15:40)
캐릭 이미지
rokmb841님 정말 감사합니다.

내용만 두번 저장되기에 저장버튼 쪽은 아닐거라 생각을 하고 있었는데 혹시나 하여 테스
트를 해보니 저장버튼이 답이었네요.

문제의 원인을 덕분에 발견하였습니다.

추가적인 원인 발생의 경우도 더 조사해보아야겠지만 정말 도움이 되었습니다.

감사합니다.



제목 작성자 날짜 조회
고수님들 도와주세요. 게시판 이용에서 내용만 콤마(,)를 기준으로 .. (2) mjdh1867 2017-04-05 743

 
 
.NET과 Java 동영상 기반의 교육사이트

로딩 중입니다...

서버 프레임워크 지원 : NeoDEEX
based on ASP.NET 3.5
Creative Commons License
{5}
{2} 읽음   :{3} ({4})