안녕하세요. 오늘 알고자 하는 것은 무엇이냐? ... 바로 방문자가 게시판에 글 또는 댓글을 적는 경우 서버와 웹사이트간의 데이터를 전송하기 위한 방법에 대하여 알아보고자 합니다.

언제 서버와 웹사이트간의 데이터 전송이 필요한가...


첫째. 게시판에 새로운 글로 저장하려는 경우
둘째. 이전의 글을 수정하기 위해 데이터베이스(DB)에서 불러와 textarea 태그에 넣어줄때...

위 두가지로 요약할 수 있습니다. 오늘 제가 얘기하고자 하는 부분은 바로 두번째... 이전의 글을 수정하기 위해 서버와 웹사이트 간의 전송에 관한 부분입니다. 조금 어려울 수도 있으나 서버사이드를 공부하신 분은 대부분 이해할 수 있으실거라 생각됩니다... 혹시 모르시면 댓글을 남겨주세요. 그럼 아래 내용부터 알아볼까요?


[ 1 ] textarea 태그에 작성 된 글을 서버(데이터베이스)로 전송하기(옮기기)


i. DB에 저장할때 편리한 함수를 사용하여 저장하면 편리
; replaceAll(), str_replace(), preg_replace()를 이용하는 것도 좋지만 php의 경우 유용한 함수를 제공합니다.
그 중 꼭 사용하는 함수가...

a. nl2br() : 개행문자, 즉 띄어쓰기를 br 태그로 변경하여 줍니다. 데이터베이스에 rn을 사용해 그대로 저장하지 않는 것이 일반적인데요... 리눅스계열에서 띄어쓰기로 인식하기 때문에 이를 그대로 저장하지 않고 변환하는 것이 일반적이 된 것 같습니다...
b. stripslashes() 그리고 addslashes(), 특수문자 처리
; 특수문자를 DB에 그대로 저장하지 않고 앞에 역슬래쉬를 자동으로 넣어줍니다.... 따옴표 등등에 자동으로 편리하게 변환시켜준답니다 :)

[ 2 ] 수정 또는 작성 된 글을 서버의 데이터베이스에서 불러와 textarea에 넣는 전송 방법


i. 일단 stripslashes()를 사용해야겠죠? addslashes()에서 사용된 부분을 고스란히 돌려준답니다....
ii. 줄바꿈 어떻게 할 것인가... 서버사이드에서 replace 함수를 사용해 br 태그로 바뀐 부분을
으로 넣기도 해보고 여러 방법을 해봤지만 결과는 textarea 창에서 줄바꿈되어 보이지는 않더군요.... 뭔가 다른 방법이 필요해보이는데 효과적인 방법은 없을까요?

방법1) DB에 br 태그 넣지않고 그냥 저장...
; 어떤 분이 써둔글을 읽어봤는데요... 시도는 안해봤지만 그대로 textarea에 띄어쓰기까지 다시 적용된다고는 하나... 아무래도 DB에 넣는 이 방법은 피하고 싶네요ㅎ

방법2) 스크립트 언어를 이용하는 방법
서버 언어로는 안되지만 스크립트를 사용하면 textarea에서 문자변환된 코드가 띄어쓰기되어 제대로 보입니다... 이 방법이 제가 아는 가장 효과적인 방법입니다. 다른 방법... 찾고 있으나 아직 모르겠네요;; 찾으면 업데이트 하도록 하겠습니다.


 example 
test = '<?php echo stripcslashes($row['content']); ?>';
test2 = test.replace(/<br/>/gi,' r');
$('#textform').text(test2);



위와 같이 코드를 이용하면 됩니다. 간단히 설명하면
content 필드에 저장된 레코드 값을 불러와서 stripslashes 함수로 변경 후 test 변수에 저장
test 변수의 br태그를 정규표현식을 사용해 띄어쓰기로 변경 후 test2로 저장
id가 textform인 textarea 영역에 다시 출력시키기...