그누보드 게시판 스킨 내 추가 필드(가사·해석) 데이터 출력 오류 해결 방법
페이지 정보

본문
그누보드5 스킨의 쓰기(write) 및 보기(view) 페이지에 추가 필드(wr6, wr7)를 구현했으나 데이터가 정상적으로 출력되지 않거나 한 줄로만 나오는 문제를 진단하고 올바른 HTML 구조와 변수 호출 방식으로 수정하는 방법을 알아봅니다.
View 스킨 추가 필드 데이터 출력 오류 원인 및 확인 방법
그누보드5(PHP 7.3 환경)에서 쓰기 및 보기 스킨에 추가 필드(가사, 해석 등 wr_6, wr_7)를 구현할 때 데이터가 정상적으로 출력되지 않거나 한 줄로만 표시되는 현상은 주로 스킨 코드 내 HTML 구조 오류 또는 변수 처리 문제로 발생합니다.
1. HTML 태그 구조 확인
제공된 스킨 코드에서 <th> 태그가 <tr> 외부에 있거나 <td> 태그 내에 잘못 위치하는 등 <table> 태그의 구조적 오류가 있는지 확인해야 합니다. 태그가 꼬이거나 닫힘(</tr>, </td>, </table>)이 누락되면 브라우저가 레이아웃을 잘못 해석하여 데이터가 잘리거나 한 줄로 밀려 보일 수 있습니다.
2. 데이터 저장 여부 및 변수 호출 확인
- 데이터가 입력 화면에서 DB로 정상적으로 저장되었는지 확인합니다.
- View 스킨 파일에서 추가 필드를 출력할 때
$view['wr_6'],$view['wr_7']형태로 정확하게 호출하고 있는지 점검합니다.
다음 행동
- 스킨 파일(
write.skin.php,view.skin.php)의 HTML 닫힘 태그(</div>,</td>,</tr>,</table>)가 누락되었거나 잘못 중첩되었는지 수정 전 코드를 백업한 뒤 확인합니다. - 동일한 문제가 지속될 경우 게시판 스킨 제작 관련 공식 팁(
gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=14)의 예시 코드와 현재 스킨 코드를 비교하여 변수명과 구조를 재검토합니다.
쓰기 스킨(write.skin.php) 추가 필드 및 에디터 태그 구조
그누보드 쓰기 스킨(write.skin.php)에서 wr_6, wr_7 등의 추가 필드에 에디터 함수와 입력 영역을 배치할 때는 HTML 태그의 중첩과 닫힘 구조를 올바르게 작성해야 데이터가 정상적으로 수집 및 저장됩니다.
1. 테이블 및 라벨 구조 배치
입력 폼을 구성할 때 <th> 태그는 <tr> 내에 위치해야 하며, label의 for 속성과 입력 필드의 id 및 name 값이 일치해야 합니다.
<table width="100%" border="1" cellspacing="1" cellpadding="1" style="background:#FFFFFF;border:1px #CCC solid;">
<tr>
<th scope="row"><label for="wr_6">가사</label></th>
<th scope="row"><label for="wr_7">해석</label></th>
</tr>
<tr>
<td class="wr_content2">
<?php echo editor_html("wr_6", $write['wr_6']);?>
</td>
<td class="wr_content3">
<?php echo editor_html("wr_7", $write['wr_7']);?>
</td>
</tr>
</table>
2. 주의 및 확인 사항
- name 값 설정: input이나 에디터 관련 태그의
name값이wr_6,wr_7등으로 정확히 지정되어야 DB 테이블의 해당 컬럼에 값이 정상적으로 저장됩니다. - HTML 닫기 태그: <table>, <tr>, <td> 태그가 누락되거나 잘못 중첩되면 브라우저가 레이아웃을 잘못 해석하여 출력 오류나 데이터 누락의 원인이 될 수 있으므로 짝이 맞는지 확인합니다.
그누보드 게시판 여분 필드(wr6, wr7) 데이터 출력 및 컬럼 타입 설정 오류 해결
그누보드5(PHP 7.3 환경) 게시판의 write.skin.php와 view.skin.php에 추가 필드(가사, 해석 등)를 구현했을 때 데이터가 정상적으로 출력되지 않거나 한 줄로만 표시되는 현상은 HTML 태그 구조 오류, 데이터베이스 컬럼 타입 제한, 혹은 스킨 내 변수 처리 문제에서 비롯될 수 있습니다.
1. HTML 태그 및 폼 요소 구조 점검
제공된 스킨 코드 사례에서는 view.skin.php 및 write.skin.php 내부에 <th> 태그가 잘못 위치하거나 <table> 태그가 올바르게 닫히지 않은 문법 오류가 관찰되었습니다. 브라우저가 레이아웃을 바르게 해석하도록 태그 중첩과 닫힘 여부를 확인해야 합니다.
write.skin.php에서 에디터 영역(editor_html) 아래에 불필요한<textarea>태그가 중복 노출되고 있는지 점검합니다.view.skin.php에서table과tr,td태그의 닫힘 상태를 확인하여 데이터 출력이 끊기는 현상을 방지합니다.
2. 데이터베이스 컬럼 타입 변경 (긴 텍스트 및 HTML 태그 깨짐 방지)
여분 필드(wr_6, wr_7)의 기본 컬럼 타입이 varchar(255)로 설정되어 있으면, 긴 가사나 HTML 태그가 포함된 내용을 저장할 때 데이터가 유실되거나 잘릴 수 있습니다.
- 조치 방법: 데이터베이스 관리 툴(예: phpMyAdmin)에서 해당 게시판 테이블(
g5_write_게시판ID)의wr_6및wr_7컬럼 타입을text타입으로 변경합니다. (Length/Values는 공란으로 둡니다.) - HTML 태그를 복사해 넣거나 에디터를 사용하는 데이터의 경우 컬럼 타입을
text로 설정해야 정상적으로 적용됩니다.
상황별 판단 및 행동 가이드
| 내 상황 | 우선할 판단 | 다음 행동 |
|---|---|---|
쓰기/보기 스킨에 추가 필드(wr_6, wr_7)를 넣었으나 데이터가 출력되지 않거나 한 줄로만 나오는 경우 | 스킨 파일 내 HTML 태그 닫힘 누락 및 중첩 오류, 데이터베이스 컬럼 타입 확인 | 1. write.skin.php와 view.skin.php의 <table>, <tr>, <td>, </div> 태그가 올바르게 닫혀 있는지 백업 후 점검합니다.<br>2. DB 테이블(g5_write_게시판ID)의 해당 여분 필드(wr_6, wr_7) 컬럼 타입이 varchar(255)로 되어 있어 데이터가 잘리거나 유실되는지 확인하고 text 타입으로 변경합니다. |
실전 FAQ
Q. 여분필드 컬럼 타입을 text로 바꾸고 스킨 태그를 수정했는데도 줄바꿈이 정상적으로 적용되지 않고 깨집니다.
- 예외 및 대안: 에디터 함수나 HTML 태그가 포함된 텍스트를 출력할 때는 단순히 변수만 출력하기보다
get_view_thumbnail()함수가 올바르게 감싸져 있는지 확인하고, 일반 텍스트 형태라면nl2br()함수를 통해 줄바꿈 문자가 브라우저 화면에 반영되도록 처리해야 합니다.
Q. 스킨 파일에서 배열 변수를 정상적으로 호출했음에도 글 작성 시 데이터가 DB에 아예 저장되지 않습니다.
- 막히는 지점: input이나 에디터 관련 폼 요소가
<form>태그 범위 내부에 위치하지 않았거나,name속성값이wr_6,wr_7등 올바른 여분 필드명으로 지정되지 않은 경우 데이터가 전송되지 않습니다. 폼 태그의 위치와 input의 name 속성을 다시 확인하세요.
참고자료
기타 참고자료
- 이전글방화벽 환경에서 그누보드5 관리자 페이지 세션 오류 및 로그아웃 해결 방법 26.09.24
- 다음글그누보드 영문 스킨 사용 시 선택 삭제·복사·이동 기능 오류 해결 방법 26.09.24
댓글목록
등록된 댓글이 없습니다.