답변 2개
댓글을 작성하려면 로그인이 필요합니다.
그누보드5(Gnuboard5)에서 상담 게시판을 만들고, 글쓴이와 관리자만 자신이 쓴 글 목록을 볼 수 있도록 하려면 다음과 같은 방식으로 처리할 수 있습니다.
✅ 목표
-
글 목록에서 본인이 작성한 글만 보이게 함 (관리자는 전체 글 보기 가능)
-
다른 사람이 작성한 글은 목록에서 숨김
-
게시글 상세보기 권한도 동일하게 적용 가능
? 수정 방법
1. list.php 수정하기
/bbs/board.php 또는 사용 중인 스킨의 list.skin.php 파일에 조건을 추가합니다.
// 관리자 여부 체크
$is_admin = ($member['mb_id'] && $member['mb_level'] >= $board['bo_admin_level']);
// 본인 글만 보이도록 쿼리 조건 수정
if (!$is_admin) {
// 로그인한 사용자만 제한 적용
if ($member['mb_id']) {
$sql_search .= " and wr_mb_id = '{$member['mb_id']}' ";
} else {
// 비회원일 경우 글 목록 안 보이게 처리
$sql_search .= " and 1=0 ";
}
}
이 코드를 $sql_search 조건에 추가해주면 됩니다. 일반적으로 board.php에서 $sql_search라는 변수가 목록을 필터링할 때 쓰입니다.
2. 글 보기 권한도 제한하고 싶다면 view.skin.php에서 처리
// 관리자 또는 글쓴이만 보기 가능
$is_admin = ($member['mb_id'] && $member['mb_level'] >= $board['bo_admin_level']);
if (!$is_admin && $write['mb_id'] !== $member['mb_id']) {
alert('본인 또는 관리자만 열람 가능합니다.');
}
3. 비회원 글쓴이 처리 (선택 사항)
비회원이 글을 작성할 수 있는 경우 wr_password를 기준으로 식별하는 처리가 필요합니다. 이 경우엔 세션에 비밀번호 통과 여부를 저장해두고 비교하는 추가 로직이 필요합니다. 가능하면 회원만 작성 가능하게 제한하는 것이 권장됩니다.
✅ 요약
-
list.php에wr_mb_id로 필터링 조건 추가 -
view.php에서도 동일한 조건으로 제한 -
관리자(
$is_admin)는 항상 전체 보기 가능
필요하시면 적용할 게시판 ID에 맞춰 전체 코드를 정확히 수정해드릴 수 있으니 말씀 주세요.
답변에 대한 댓글 4개
일단 리스트랑 뷰에서만 넣어보시면되요
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 5;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
// 관리자 여부 체크
$is_admin = ($member['mb_id'] && $member['mb_level'] >= $board['bo_admin_level']);
// 본인 글만 보이도록 쿼리 조건 수정
if (!$is_admin) {
// 로그인한 사용자만 제한 적용
if ($member['mb_id']) {
$sql_search .= " and wr_mb_id = '{$member['mb_id']}' ";
} else {
// 비회원일 경우 글 목록 안 보이게 처리
$sql_search .= " and 1=0 ";
}
}
?>
2.view.php 상단 아래와 같이 수정
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
// 관리자 또는 글쓴이만 보기 가능
$is_admin = ($member['mb_id'] && $member['mb_level'] >= $board['bo_admin_level']);
if (!$is_admin && $write['mb_id'] !== $member['mb_id']) {
alert('본인 또는 관리자만 열람 가능합니다.');
}
?>
수정하여 업로드하였는데
비회원이라도 글목록이 보입니다.
머가 잘못된걸까요
게시판 설정에 가셔서 목록 권한을 10으로 설정해주시고
$is_admin = ($member['mb_id'] && $member['mb_level'] >= $board['bo_list_level']); 이걸로해서 변경해주세요
글 읽기와 목록 둘다 수정해보세요 만약에 수정됐으면 채택부탁드려요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
list.php 및 view.php 수정은 무슨말인지 알겠는데
"이 코드를 $sql_search 조건에 추가해주면 됩니다. "
<=이부분이 어디서 어떻게 작업을 해야 하는지
이해가 안됩니다.
제가 영원한 초보라서요
조언 부탁드립니다.
조언에 맞추어 한번 해보고 안되면 도움을 받도록 하겠습니다.