그누보드4 게시판 카테고리 한글 인코딩 및 경로 오류 해결 가이드
페이지 정보

본문
그누보드4 게시판에서 한글 카테고리를 사용할 때 발생하는 경로 오류와 인코딩 깨짐 현상을 해결하여, 운영자와 개발자가 안정적으로 게시판 분류 기능을 적용할 수 있도록 돕습니다.
그누보드4 게시판 카테고리 경로 변수 누락 오류 해결 방법
그누보드4 UTF-8 환경의 게시판 스킨에서 한글 카테고리를 선택할 때 경로 변수나 변수 선언 관련 오류가 발생할 경우, 자바스크립트의 카테고리 변경 스크립트에 encodeURI() 함수를 적용하여 해결할 수 있습니다.
1. 수정 전 백업 및 파일 위치
- 수정할 파일: 게시판 스킨 폴더 내의
list.skin.php - 주의사항: 코드를 수정하기 전 원본
list.skin.php파일을 반드시 백업해 두어야 합니다.
2. 코드 수정 방법
list.skin.php 파일에서 +this.value를 검색한 뒤, 아래와 같이 +encodeURI(this.value) 형태로 수정합니다.
원본 코드 예시
<select name=sca onchange="location='<?=$category_location?>'+this.value;">
수정된 코드 예시
<select name=sca onchange="location='<?php echo $category_location;?>'+encodeURI(this.value);">
3. 적용 후 확인 사항
- 브라우저에서 게시판 카테고리를 다른 항목으로 변경해봅니다.
- URL 파라미터에 한글 카테고리 값이 정상적으로 인코딩되어 전달되는지 확인합니다.
- 참고 및 예외: EUC-KR 환경에서 동일하게
encodeURI를 적용할 경우js/sideview.js등과 관련된 변수 선언 에러(g4_is_member변수 선언 오류 등)가 발생할 수 있으므로 환경에 따른 호환성을 유의해야 합니다.
일반 페이지 및 메뉴의 외부 링크에서 한글 카테고리(sca) 인코딩 오류 해결 방법
그누보드4 게시판의 일반 페이지나 메뉴에서 외부 링크를 통해 한글 카테고리(sca) 값을 전달할 때, 브라우저(예: 익스플로러) 환경에 따라 링크가 정상적으로 작동하지 않거나 한글 분류명이 깨지는 문제가 발생할 수 있습니다.
원인
파이어폭스 등 일부 브라우저에서는 한글 파라미터를 그대로 전달해도 동작하지만, 익스플로러 등에서는 URL의 한글 및 특수문자 처리가 올바르게 이루어지지 않아 링크가 정상적으로 열리지 않는 오류가 발생합니다.
해결 방법
링크 생성 시 PHP의 urlencode() 함수를 사용하여 한글 카테고리명을 인코딩해 주어야 합니다.
- 기존 링크 형식 (오류 발생 가능)
<a href="<?php echo $g4['path'];?>/bbs/board.php?bo_table=free&sca=분류">분류</a>
- 수정된 링크 형식 (urlencode 적용)
<a href='<?="$g4[bbs_path]/board.php?bo_table=테이블명&sca=".urlencode("분류명")?>'>분류명링크걸기</a>
또는
<a href="<?php echo $g4['path'];?>/bbs/board.php?bo_table=free&sca=<?=urlencode("분류")?>">분류</a>
위와 같이 urlencode() 함수를 적용하면 브라우저 환경에 구애받지 않고 한글 카테고리(sca) 값이 안전하게 전달되어 인코딩 깨짐 문제를 방지할 수 있습니다.
갤러리 스킨에서 한글 카테고리 글의 이미지나 제목을 클릭했을 때 하단 목록이 보이지 않는 문제는 링크 경로에 카테고리(sca) 파라미터와 urlencode() 처리가 누락되었기 때문에 발생합니다.
수정 위치 및 방법
해당 게시판 스킨 폴더 내의 list.skin.php 파일을 엽니다. 파일을 수정하기 전 반드시 원본을 백업하십시오.
list.skin.php 파일에서 아래의 기존 코드를 찾습니다.
$view_img = "<a href='{$g4[bbs_path]}/board.php?bo_table=$bo_table&wr_id={$list[$i][wr_id]}&page=$page&sca=". urlencode($list[$i][ca_name])."'>";
$view_href = "<a class='bl' href='{$g4[bbs_path]}/board.php?bo_table={$bo_table}&wr_id={$list[$i][wr_id]}&page={$page}&sca=". urlencode($list[$i][ca_name])."'>";
찾은 코드를 아래와 같이 &sca=와 urlencode($list[$i][ca_name])가 포함되도록 수정합니다.
$view_img = "<a href='{$g4[bbs_path]}/board.php?bo_table=$bo_table&wr_id={$list[$i][wr_id]}&page=$page&sca=". urlencode($list[$i][ca_name])."'>";
$view_href = "<a class='bl' href='{$g4[bbs_path]}/board.php?bo_table={$bo_table}&wr_id={$list[$i][wr_id]}&page={$page}&sca=". urlencode($list[$i][ca_name])."'>";
다음 행동 및 확인
수정 완료 후 갤러리 게시판으로 이동하여 한글 카테고리를 선택한 뒤, 게시물의 이미지나 제목을 클릭했을 때 하단 목록이 정상적으로 유지되는지 확인합니다.
EUC-KR 환경에서의 encodeURI 적용 호환성 문제와 주의사항
그누보드4 환경에서 카테고리 분류 사용 시 한글 인코딩 문제를 해결하기 위해 자바스크립트에 encodeURI를 적용할 때, 환경에 따라 예외적인 문제가 발생할 수 있습니다.
확인 및 주의사항
- EUC-KR 환경 호환성 오류: UTF-8 게시판 스킨의
list.skin.php파일에서+this.value를+encodeURI(this.value)로 수정하는 방식을 EUC-KR 환경의 스킨에 그대로 적용하면,g4_is_member 변수가 선언되지 않았습니다.와 같은 에러가js/sideview.js파일에서 발생할 수 있습니다. - 적용 전 백업 필수: 소스코드를 수정하기 전에는 반드시 원본 파일을 백업한 후 환경에 맞는 인코딩 방식인지 확인해야 합니다.
- 원인 확정 자제: 스크립트 수정 후 발생하는 에러는 사용 중인 캐릭터셋(EUC-KR 또는 UTF-8)과 스킨 파일의 호환 여부에 따라 달라질 수 있으므로, 무조건적인 변경보다 현재 게시판의 인코딩 환경을 먼저 점검해야 합니다.
상황별 해결 경로
- 게시판 카테고리 선택 시 경로 오류 발생 (UTF-8 환경)
- 선택 기준:
list.skin.php내 자바스크립트onchange이벤트 - 다음 행동:
+this.value를+encodeURI(this.value)로 수정하여 URL 인코딩을 적용합니다.
- 선택 기준:
- 외부 링크나 메뉴에서 한글 카테고리(
sca) 전달 시 깨짐- 선택 기준: 링크 주소 내
sca파라미터 - 다음 행동:
sca=분류명대신sca=<?=urlencode("분류명")?>형태로 PHP 함수를 적용합니다.
- 선택 기준: 링크 주소 내
- 갤러리 스킨에서 카테고리 필터링이 풀리는 경우
- 선택 기준:
list.skin.php내 이미지 및 제목 링크 - 다음 행동: 링크 URL 끝에
&sca=와urlencode($list[$i][ca_name])를 추가하여 파라미터를 유지합니다.
- 선택 기준:
Q. EUC-KR 환경에서 encodeURI 적용 시 sideview.js 에러가 발생합니다.
- 대안: EUC-KR 환경은 UTF-8과 인코딩 방식이 달라
encodeURI적용 시 변수 선언 오류가 발생할 수 있습니다. 무리한 스크립트 수정보다는 해당 환경의 인코딩 호환성을 먼저 점검하고, 필요 시 인코딩을 거치지 않는 기본값 사용을 검토하십시오.
Q. urlencode()와 encodeURI() 중 무엇을 써야 하나요?
- 구분: PHP 코드 내에서 링크를 생성할 때는
urlencode()를 사용하고, 자바스크립트 이벤트(onchange 등)를 통해 브라우저에서 URL을 변경할 때는encodeURI()를 사용합니다.
함께 보면 좋은 글
- 그누보드4 MySQL 데이터베이스 문자셋 인코딩 설정 및 한글 깨짐 해결
- 그누보드5 최신글 스킨 분류명(카테고리) 이미지 출력 커스터마이징 방법
- 그누보드4 게시판 카테고리 가로 정렬 커스터마이징 방법과 주의사항
참고자료
기타 참고자료
- 이전글배추빌더5 모바일 스킨 사용 시 글 작성 및 토큰 에러 해결 방법 26.09.28
- 다음글Windows 환경에서 PHP와 MS SQL 연동 시 한글 깨짐 및 검색 오류 해결 방법 26.09.28
댓글목록
등록된 댓글이 없습니다.