채택완료

글작성/수정 시 멋대로 글자수 제한 되네요

2015-08-31 (월) 20:12:40 7,101

동호회 홈페이지를 인계받아 동호회 연혁을 수정하려는데

2000~2007년까지만 출력되네요

홈페이지 외주를 맡겼던 업체에 연락해보니 유지보수계약은 없었기에 도와줄 수 없고

다만 이곳에 물어보라 하여 여기에 도움을 구해봅니다.

중학생 때 제로보드만 취미삼아 건들어본 거 외에는 아는 게 없습니다. 부탁드립니다. 도와주세요.

버전은 config.php를 보니 

define('G5_VERSION', '그누보드5');

라고 되어있습니다.

환경설정에서 글자제한수 0으로 해놓았습니다.

dhtml editor 문제인가 싶어 cheditor 4에서 5.1.4로 바꿔도 보았습니다

글작성시에 미리보기를 눌러보면 정상으로 뜨는데 막상 작성완료를 눌러보면

출력물에는 중간에 지 멋대로 </tbody> </table>로 잘라 닫아먹네요.

 여기도 글자수제한으로 입력하려는 태그가 전부 출력이 되지 않네요 ㅠㅠ

더 얘기드리자면 1,2,3,4,5,6,7,8,9,10까지 입력하였는데

1,2,3,4,5까지만 출력이 된다는 겁니다

부디 도와주세요

|

답변 2개 / 댓글 3개

채택된 답변
+20 포인트

/bbs/write_update.php 에 보시면 아래 구문이 있습니다.

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

위 구문에서 substr 함수에 의해 65536번째 문자까지만 저장되고 나머지는 잘리게 됩니다.

그리고 기본 그누보드 설치하셨다면 게시판 테이블의 데이터형이 text 일것이므로

위 함수에서 자르지 않더라도 65536 문자까지밖에 저장이 안됩니다.

html 에디터를 사용하시면 불필요한 태그도 많이 섞이기 때문에 때때로 아주 긴문서의 경우 65536라는 값도 작은 값은 아니지만 이보다 더 길 경우도 종종 있습니다.

문제를 해결하시려면 위 함수의 substr 함수부분을 제거하시고

phpmyadmin 등으로 db에 접근하셔서 해당 게시판테이블의 wr_content 라는 필드의 데이터형을

longtext 형으로 바꾸어 주셔야 합니다.

참고로 mysql 텍스트의 데이터형은 다음과 같습니다.

TEXT
– 범위 : 최대 65535 글자

MEDIUMTEXT
– 범위 : 최대 16777215 글자

LONGTEXT
– 범위 : 최대 4294967295 글자 


답변에 대한 댓글 1개

되네요!! 데이터타입은 longtext로 되어있던데 substr 함수에서 뒤 숫자를 크게 했더니 되네요 감사합니다!!
2015-08-31 (월) 22:16:07

해당 게시판 테이블의 wr_content 의 입력 용량을 늘려야 할 것 같습니다.

현재 그누보드에서 기본으로 설정된 게시판 내용필드(wr_content)는 데이타 타입이 TEXT로 되어 있습니다.

이부분을 변경하기 위해 다음과 같이 하신 후, 글쓰기 테스트를 해보세요.

해당 스킨의 list.skin.php 파일의 상단에

Copy
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가  //wr_content 의 데이타 타입을 변경한다. 한번 실행후 아래 쿼리문을 주석처리하세요.sql_query(" ALTER TABLE `{$write_table}` CHANGE `wr_content` `wr_content` LONGTEXT NOT NULL ", true);

위의 코드를 추가한 후 게시판의 목록 페이지에 한 번 접속하신 후, 위의 쿼리문을 주석처리하시고

게시판 글쓰기에서 내용이 짤리는 지 확인해 보세요. 

"카츠"님의 답변도 참고 하셔서

/bbs/write_update.php 파일에서 아래처럼 글자수 제한부분을 주석처리하세요.

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

답변에 대한 댓글 2개

아 채택이 다수 선택이 안 되는군요 ㅠㅠ 정말감사합니다 도움 많이 되었습니다
위의 두번째 제시된 코드 수정합니다.

/bbs/write_update.php 파일에서 아래처럼 글자수 제한부분을 주석처리 및 추가하세요.
[code]
$wr_content = '';
if (isset($_POST['wr_content'])) {
$wr_content = trim($_POST['wr_content']);
//$wr_content = substr(trim($_POST['wr_content']),0,65536);
$wr_content = preg_replace("#[\\\]+$#", "", $wr_content);
}
[/code]

답변을 작성하려면 로그인이 필요합니다.