PHP

그누보드의 게시물 내용 글자 수(65536byte보다 길게) 늘리는 방법(text, longtext type)

미스털이 사용자 2023. 5. 23. 15:20
반응형

 

게시물의 글자 수가 많은 내용을 저장할 경우가 간혹 있다. 그런데 그누보드에 저장하려는데 내용이 너무 길어 끊겨서 저장되는 경우가 발생한다.

 

<이를 해결하기 위한 방법>

* wr_content를 long text로 변화시키는 것이다.

 

 

 
 

 

그런데 이것만 해선 그누보드에서 해결이 되지 않는다. 그누보드 소스를 하나씩 수정해야한다.

 

  1. /bbs/write_update.php

원래 이렇게 변환하는 부분이 있을 것이다. 이 65536은 text의 정규길이이다. 이 65536바이트만큼 자른다음 저장하겠다는 문구이다.

 

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

 

이것을 아래와 같이 수정하면 된다.

 

if (isset($_POST['wr_content'])) {
    //$wr_content = substr(trim($_POST['wr_content']),0,65536);
	
	/*
	if ($is_admin) {   // 관리자만 길게 저장하고자 할 때 2023-05-23
        $wr_content = trim($_POST['wr_content']);
    } else {
        $wr_content = substr(trim($_POST['wr_content']),0,65536);
    }*/

	//권한과 관계없이 모두 2023-05-23
	$wr_content = trim($_POST['wr_content']);

    $wr_content = preg_replace("#[\\\]+$#", "", $wr_content);
}

 

 

2. /lib/editor.lib.php

원래 이렇게 처리된 부분이 있을 것이다. 여기서 속성maxlength=65536이란 부분이 보일 것이다. 위와 마찬가지로 text의 길이만큼 보여주겠다는 뜻이다.

 

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

 

이것도 아래와 같이 고쳐주면 된다.

 

function editor_html($id, $content)
{
	global $is_admin;

    //return "<textarea id=\"$id\" name=\"$id\" style=\"width:100%;\" maxlength=\"65536\">$content</textarea>";
	/*
	if ($is_admin) {  // 관리자
        return "<textarea id=\"{$id}\" name=\"{$id}\" style=\"width:100%;\">{$content}</textarea>"; // 해피정닷컴 추가 (2014-03-02)
    } else { // 그외
        return "<textarea id=\"{$id}\" name=\"{$id}\" style=\"width:100%;\" maxlength=\"65536\">{$content}</textarea>";
    }
	*/

	//권한과 관계없이 모두 2023-05-23
	return "<textarea id=\"{$id}\" name=\"{$id}\" style=\"width:100%;\">{$content}</textarea>"; // 해피정닷컴 추가 (2014-03-02)
}

 

 

 

3. /adm/sql_write.sql

이건 게시판을 그누보드 프로그램에서 추가시킬 때 쓰이는 DB명령어이다. wr_content의 스키마를 longtext로 고쳐주면 된다.

 

반응형