게시판 본문 내용 글자 수 제한 해제하기 - 글 내용이 잘리는 문제 해결 방법 - 그누보드팁

본문 바로가기
전체검색

그누보드팁

그누보드, 영카트 초보 제작자분들을 위한 다양한 스킨 제작 활용 팁을 공유합니다.

게시판 본문 내용 글자 수 제한 해제하기 - 글 내용이 잘리는 문제 해결 방법

관리자 16-06-28 09:27

게시판에 글을 작성할 때 본문 내용이 정상적으로 다 올라가지 않고 뒷부분이 잘리는 경우가 있습니다.


- 웹페이지에서 글을 복사해서 그대로 붙여 넣을 경우

- 한글이나 워드 프로그램에서 작성한 문서 내용을 복사해서 그대로 붙여 넣을 경우


특히 위와 같은 경우 글을 붙여 넣고 에디터 하단 탭에서 HTML 소스 보기를 해보면 다량의 태그 코드가 추가돼있는 걸 확인할 수가 있는데 그래서 데이터 저장 허용 크기를 넘어선 부분들은 전부 누락되는 것이죠.


 


 

1. 게시판 필드 타입 변경

 

그누보드는 게시판 내용 값이 저장되는 wr_content 필드 타입이 TEXT로 되어 있습니다.

해당 필드 타입을 TEXT에서 MEDIUMTEXT 또는 LONGTEXT로 변경합니다.


phpMyAdmin 을 이용하면 쉽게 변경할 수 있습니다.

웹호스팅을 이용 중이라면 내 호스팅 관리 메뉴 등에 phpMyAdmin 접속 링크가 대부분 있을 겁니다.

 

cdc96f64d6873590a123db3984d26f94_1477767366_8435.png

 

좌측 DB 테이블에서 원하는 게시판 선택 후 wr_content 필드 수정 버튼 클릭

g5_write_1111 이런 형태로 되어 있는 게 게시판 테이블이고 끝부분 1111 이 게시판 id 입니다.

 

수정 화면에서 필드 종류를 TEXT 에서 MEDIUMTEXT 또는 LONGTEXT 로 변경

 

cdc96f64d6873590a123db3984d26f94_1477767373_164.png
 

 

phpMyAdmin 을 사용하기 곤란한 상황이거나 위와 같이 적용했는데 에러가 뜬다면 이렇게 하세요.


해당 게시판에서 사용하고 있는 게시판 스킨 write.skin.php 파일 상단 

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

위 코드 바로 밑에 다음 코드를 추가합니다.


MEDIUMTEXT 로 변경하려면 이렇게..

sql_query(" ALTER TABLE `{$write_table}` CHANGE `wr_content` `wr_content` MEDIUMTEXT NOT NULL ");


LONGTEXT 로 변경하려면 이렇게..

sql_query(" ALTER TABLE `{$write_table}` CHANGE `wr_content` `wr_content` LONGTEXT NOT NULL ");


MEDIUMTEXT 또는 LONGTEXT 둘 중 하나만 선택해서 적용하세요.


write.skin.php 파일에 위 코드를 추가하고 게시판 클릭 후 글쓰기 화면을 한 번 띄워주면 자동으로 변환됩니다.

다른 게시판도 바꾸고 싶으면 변환하고자 하는 게시판을 클릭 후 마찬가지로 글쓰기 화면을 띄워주면 됩니다.

해당 게시판에서 사용되고 있는 스킨 파일에 적용한 게 맞는지 정확히 확인하세요.

요즘은 반응형 테마까지 나와서 다른 스킨 파일에 잘못 적용하는 분들이 의외로 많이 계십니다.


적용 후 해결이 되면 추가했던 위 코드는 반드시 다시 삭제하세요.




2. bbs/write_update.php 파일 수정

 

if (isset($_POST['wr_content'])) {
    $wr_content = substr(trim($_POST['wr_content']),0,65536);
    $wr_content = preg_replace("#[\\\]+$#", "", $wr_content);
}
 

여기서 이 부분 숫자를 아래 참고사항에 있는 최대 저장 크기 값 참고해서 적당히 늘려주거나

$wr_content = substr(trim($_POST['wr_content']),0,16777216);


아니면 이렇게 없애버립니다.

$wr_content = trim($_POST['wr_content']);


* 참고사항 (데이터 타입별 최대 저장 크기)

TEXT : 65535

MEDIUMTEXT : 16777215

LONGTEXT : 4294967295




 

3. lib/editor.lib.php 파일 수정


아래 함수를 찾은 후 maxlength=\"65536\" 이 부분 최대 저장 크기를 2번 내용처럼 적당히 변경하거나 삭제

 

function editor_html($id, $content)
{
    return "<textarea id=\"$id\" name=\"$id\" style=\"width:100%;\" maxlength=\"65536\">$content</textarea>";

}

댓글목록 +6

댓글목록

profile_image

신비님의 댓글

신비 작성일

글 길게 작성하는 홈피에 꼭 적용해야 하는 꿀팁이네요.

profile_image

그누공부중님의 댓글

그누공부중 작성일

1번과 2번을 함께 적용해야 하나요? 아니면 1번만 적용해도 괜찮은건가요?

profile_image

관리자님의 댓글의 댓글

관리자 작성일

둘 다 해야 합니다.

profile_image

ggamgo12님의 댓글

ggamgo12 작성일

올려주신 것들 모두 적용했는데도 글자수가 6만자에서 잘리네요 ㅠ 더 손대야할 부분이 있을까요?

profile_image

관리자님의 댓글의 댓글

관리자 작성일

원본 기준으로는 없습니다. 원본인데도 안 되는 거면 수정을 제대로 안 하셨을 겁니다.

profile_image

HanSeoulo님의 댓글

HanSeoulo 작성일

덕분에 잘 수정했습니다. 대단히 감사합니다^^

로그인 후 댓글 작성 가능합니다.

로그인

로그인 후 글 작성 가능합니다.
그누스킨닷컴

그누스터디는 그누보드, 영카트를 이용하시는 초보 사용자를 위한 정보를 공유합니다.

E-MAIL : gnustudy@naver.com / 카카오톡 : gnustudy / 텔레그램 : gnustudy
제작 문의를 제외한 일반 문의는 QA 게시판을 이용해주세요.

Copyright gnustudy.com All rights reserved.