테스트 사이트 - 개발 중인 베타 버전입니다

게시판 관리자 여러명으로 하기

· 19년 전 · 7182 · 35
가장 최근의 보완 리플까지 업데이트 하였습니다 - 2007.04.26

아래 리플에 지적이 들어와서 보안에 버그가 생기지 않도록 수정하였습니다
수정하니 더 간단해 졌네요 -0-

아래에 다른 분께서 올려놓으신 소스가 있음에도 불구하고
올리는 이유는 올려놓은 방식이 너무 고쳐야할 소스가 많은 듯 해서입니다
저도 고쳐야할 소스는 많지만
다 같은 질문을 고치는 것으로
복사해서 붙이시면 됩니다

1. lib/common.lib.php
$mb = sql_fetch("select * from $g4[member_table] where mb_id in ('$board[bo_admin]') limit 1 ");

$mb = sql_fetch("select * from $g4[member_table] where mb_id in ('$board[bo_admin_arr][0]') limit 1 ");
이렇게 바꾸면
get_admin에서 가장 앞에 입력한 관리자가 return 됩니다
호환성을 위해 이렇게 되었습니다

2. 다음과 같은 소스의 다음 line에서
lib/common.lib.php 에서는

if ($board[bo_admin] ==$mb_id) return 'board'; 를
if ($board[bo_table] != "")
if (in_array($mb_id, $board[bo_admin_arr])) return 'board';
로 바꾸시고

다음과 같은 소스의 다음 line에서는
bbs/list.php
bbs/delete_all.php
bbs/delete_comment.php
bbs/write.php

if ($board[bo_admin] ==$member[mb_id]) 를
if (in_array($member[mb_id], $board[bo_admin_arr]))
이렇게 고쳐서 역시 bo_admin 문자열에서 특정 아이디가 포함되어 있는지 확인합니다

bbs/delete.php에서는 조금 다른데 (심만짱님의 리플을 반영하였습니다)

if ($board[bo_admin] != $member[mb_id]) 를
if (!in_array($member[mb_id], $board[bo_admin_arr]))
이렇게 고쳐서 역시 bo_admin 문자열에서 특정 아이디가 포함되어 있는지 확인합니다


3. /common.php
$board = sql_fetch(" select * from $g4[board_table] where bo_table = '$bo_table' ");
라는 구문 밑에
$board[bo_admin_arr] = explode("|", $board[bo_admin]);
를 추가해 주시면 게시판 관리자의 배열이 생성됩니다
이게 추가되었습니다..

4. adm/board_form.php
<td><input type=text class=ed name=bo_admin maxlength=20 value='<?=$board[bo_admin]?>'></td>
에서 maxlength를 충분히 늘여주시면 됩니다

이제 게시판 관리에서 게시판관리자 설정에
넣고자 하는 관리자의 id를 |를 구분자로 하여 넣어주시면 됩니다
aaa|bbb|root
이렇게 넣으시면 aaa가 가장 중요한 게시판 관리자 이며
나머지 bbb, root도 이 게시판에 관리자 역할을 하게 됩니다
크게 고쳐야할 부분은 3가지 입니다
적용해 보니 잘 돌아가는 군요
그룹 관리자도 이러한 방식으로 하면 고칠 수 있겠으나
그룹 관리자 까지 여러명이 필요하진 않은듯 하군요

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 35개

18년 전
참고하겠습니다.
게시판관리자 여러명
감사합니다.
좋은정보고맙습니다
17년 전
...

게시글 목록

번호 제목
2604
2588
2587
2572
2565
2561
2527
2515
2501
2497
2487
2484
2481
2479
2463
2462
2433
2396
2393
2381