BOARD

문제 해결

그누보드4 글쓰기 에러 해결 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 17회 작성일 26-10-02 17:17

본문

그누보드4 글쓰기 에러 해결 방법

그누보드4 글쓰기 페이지에서 발생하는 '글쓰기에는 wr_id값을 사용하지 않습니다' 에러의 원인을 진단하고 수정하는 방법을 안내합니다.

그누보드4 글쓰기 에러 원인

그누보드4 환경에서 글쓰기 페이지 진입 또는 제출 시 '글쓰기에는 $wr_id값을 사용하지 않습니다.' 에러가 발생하는 대표적인 원인은 스킨 내 자바스크립트가 목록 버튼(btn_list)을 제어하는 과정에서 요소를 찾지 못하거나, 버전 간 코드 호환성 문제 등이 발생하기 때문입니다.

주요 원인

  • 목록 버튼 제어 자바스크립트 오류: 구형 스킨을 그누보드 4.3 이후 버전에 적용할 때, write.skin.php 상단에서 관리자 권한 등으로 목록 버튼 자체를 숨기거나 출력하지 않도록 처리했음에도 불구하고, 자바스크립트 영역에서는 document.getElementById('btn_list').disabled = true; 코드가 그대로 남아 있어 존재하지 않는 요소를 제어하려 할 때 발생합니다.
  • 기타 복합적 원인: fwrite_submit 함수의 중복 사용, 폐기된 금지단어 체크 자바스크립트 코드 잔존, 구형 에디터 연동 코드 불일치, head.sub.php에서의 jQuery 라이브러리 누락 등이 원인이 될 수 있습니다.

자바스크립트 목록 버튼 제어 코드 에러 수정 방법

그누보드4(G4) 글쓰기 페이지에서 자바스크립트가 목록 버튼을 제어할 때 요소를 찾지 못해 '글쓰기에는 $wr_id값을 사용하지 않습니다.' 에러가 발생하는 경우, 스킨 파일의 자바스크립트 수정 코드를 적용하여 해결할 수 있습니다.

수정 대상 파일

  • 위치: skin/board/스킨명/write.skin.php

수정 절차

  1. write.skin.php 파일 내에서 document.getElementById('btn_list').disabled = true; 코드를 검색합니다.
  2. 목록 버튼(btn_list)을 관리자만 보이도록 제어하는 조건문과 맞추어, 해당 자바스크립트 코드에도 관리자 권한 조건문을 함께 감싸줍니다.
<?php if ($is_admin) {?>
 if (document.getElementById('btn_list')) {
 document.getElementById('btn_list').disabled = true;
 }
<?php }?>
  1. 또는 요소를 직접 찾지 못해 발생하는 오류를 방지하기 위해 아래와 같이 요소 존재 여부를 확인하는 조건문 스크립트로 수정할 수도 있습니다.
if(document.getElementById('btn_list'))
document.getElementById('btn_list').disabled = true;

다음 행동

  • 수정을 완료한 후 글쓰기 페이지를 새로고침하여 에러 문구가 사라지고 정상적으로 진입되는지 확인합니다.

권한별 목록 버튼 출력 및 접근 제한 방법

그누보드4 게시판에서 특정 회원 레벨 조건에 따라 글쓰기 화면의 목록 버튼을 제어하고 권한이 부족한 회원의 비정상 접근을 막으려면 스킨 파일을 수정합니다.

1. write.skin.php 파일 수정

그누보드4 설치 경로의 skin/board/basic/write.skin.php 파일에서 회원 레벨($member['mb_level'])과 게시판 목록 권한($board['bo_list_level'])을 비교하여 처리합니다.

  1. HTML 출력부 확인 및 수정
    • 지정된 줄(예: 251줄 부근)의 목록 버튼 링크 코드를 아래와 같이 조건문으로 감쌉니다.
    <?php if ($member['mb_level'] >= $board['bo_list_level']) {?>
    <a href="./board.php?bo_table=<?=$bo_table?>"><img id="btn_list" src="<?=$board_skin_path?>/img/btn_list.gif" border=0></a>
    <?php }?>
  2. 자바스크립트 제어부 확인 및 수정
    • 지정된 줄(예: 380줄 부근)의 자바스크립트 코드를 아래와 같이 수정합니다.
    <?php if ($member['mb_level'] >= $board['bo_list_level']) {?>
    document.getElementById('btn_list').disabled = true;
    <?php }?>

2. write_update.skin.php 파일 수정

동일한 스킨 폴더 내의 write_update.skin.php 파일 상단에 접근 제한 코드를 추가하여 권한이 미달하는 회원이 직접 URL 등으로 접근하는 상황을 방지합니다.

<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

if ($member['mb_level'] < $board['bo_list_level']) {
 if($w!= 'u') {
 alert("신청되었습니다.", "./write.php?bo_table=$bo_table");
 }
}
?>

상황별 해결 가이드

그누보드4 글쓰기 과정에서 문제가 발생했을 때 내 상황에 따른 판단과 행동 요령입니다.

내 상황우선할 판단다음 행동
구형 스킨 사용 중 글쓰기 화면 진입/제출 시 에러 발생자바스크립트 내 목록 버튼 제어 코드(btn_list) 오류 확인write.skin.php에서 document.getElementById('btn_list').disabled = true; 코드를 관리자 조건문(<?php if ($is_admin) {?>)으로 감싸거나 요소 존재 여부 확인 코드로 수정
구형 스킨 사용으로 인한 폐기된 금지단어 함수 충돌더 이상 지원되지 않는 자바스크립트 금지어 체크 코드 판단write.skin.php 내 word_filter_check 관련 자바스크립트 블록 전체 삭제
에디터 연동 오류 또는 내용 미입력 경고 현상 발생에디터 초기화 코드 누락 및 fwrite_submit 함수 중복 여부 확인if (!defined("_GNUBOARD_")) exit; 하단의 cheditor 초기화 코드 및 textarea 출력부 최신화 반영

실전 FAQ

Q. write.skin.php에서 자바스크립트 코드를 수정했는데도 에러가 계속 발생하는 이유는 무엇인가요?

  • 예외 및 대안: 자바스크립트 버튼 제어 코드 외에도 fwrite_submit 함수가 중복 선언되었거나, 구형 에디터 연동 방식이 충돌을 일으키고 있을 수 있습니다. 최신 버전의 기본 스킨 파일과 비교하여 불일치하는 코드를 대조해 보거나 브라우저 개발자 도구의 콘솔 창에서 정확한 자바스크립트 오류 위치를 확인해야 합니다.

Q. 목록 권한이 있는 회원인데도 글쓰기 페이지에서 목록 버튼이 아예 보이지 않습니다.

  • 예외 및 대안: 스킨 파일 내에서 목록 버튼 출력부가 관리자 권한($is_admin) 또는 잘못된 레벨 조건문으로 엄격하게 감싸져 있을 수 있습니다. skin/board/스킨명/write.skin.php에서 회원 레벨($member['mb_level'])과 게시판 목록 권한($board['bo_list_level'])을 비교하는 조건문 범위가 올바르게 설정되어 있는지 점검해야 합니다.

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.