관리자가 글 작성시 글을 읽을 사용자를 설정하기 > 그누3 팁자료실

그누3 팁자료실

관리자가 글 작성시 글을 읽을 사용자를 설정하기 정보

관리자가 글 작성시 글을 읽을 사용자를 설정하기

본문

* 요구사항.
1. 관리자가 글을 작성시 글을 읽을 사용자(ID)를 설정한다.
2. 사용자는 게시판에 들어가면 자기것만 볼수있다.

* 진행내역.
1. 회원만 접근 가능한 그룹을 생성한다.
2. 회원가입시 접근가능한 그룹을 사용자별로 설정한다.
3. 작업내역에 따라 프로그램을 수정한다.

* 프로그램 수정 파일
1. bbs/gnuboard.php
2. bbs/gblist.php
3. bbs/gbupdate.php
4. 스킨의 gbform.skin.php


* 작업내역(해당 소스를 찾아서 파란색 부분을 추가한다)
1. bbs/gnuboard.php

if ($is_admin == 'default' || $group[gr_admin] == $member[mb_id]) {
; // 통과
} else {
//$sql = " select count(*) from $cfg[table_group_member] where mb_id = '$member[mb_id]' ";
// 그룹접근 오류 수정 2003-09-01
$sql = " select count(*) from $cfg[table_group_member] where gr_id = '$board[gr_id]' and mb_id = '$member[mb_id]' ";
$row = sql_fetch($sql);
if (!$row[0]) {
alert("접근 권한이 없습니다.\\n\\n궁금하신 사항은 관리자에게 문의바랍니다.");
}

// updated by root : 회원용 자기것만 볼수있어야 한다.
if ($write[mb_id] != $member[mb_id]) { // root
alert("접근 권한이 없습니다.\\n\\n궁금하신 사항은 관리자에게 문의바랍니다.");
}

}


2. bbs/gblist.php
$sql_order = " order by $ssort $sorder ";


// updated by root : 그룹접근 가능
if (!$is_admin && $group[gr_use_access]) {
$sql_where = " and mb_id = '$mb_id' "; // root
} else {
$sql_where = ""; // root
}


if ('' != $stext) {
$sql = " select distinct wr_parent_id
from $write_table
where (1) $sql_search
$sql_where
$sql_order
limit $from_record, $board[bo_page_rows] ";
$result = sql_query($sql);
} else {
$sql = " select *
from $write_table
where wr_comment = '0'
$sql_where
$sql_order
limit $from_record, $board[bo_page_rows] ";
$result = sql_query($sql);
}

unset($list);

3. bbs/gbupdate.php
if ($w == '' || $w == 'r' || $w == 'c') {

if($is_admin && $wr_id) { // updated by root
$mb = get_member($wr_id);
if (!$mb[0]) {
echo "<script language='javascript'<alert('회원 아이디 오류입니다.');window.history.back();</script>";
exit;
}
$mb_id = $mb[mb_id];
$wr_name = $mb[mb_name];
$wr_passwd = $mb[mb_passwd];
$wr_email = $mb[mb_email];
$wr_homepage = $mb[mb_homepage];

} else {

if ($member[mb_id]) {
$mb_id = $member[mb_id];
$wr_name = $member[mb_name];
$wr_passwd = $member[mb_passwd];
$wr_email = $member[mb_email];
$wr_homepage = $member[mb_homepage];
} else {
$mb_id = '';
$row = sql_fetch(" select password('$wr_passwd') ");
$wr_passwd = $row[0];
}

}

// 간혹 이름이 넘어오지 않는 경우가 생김 (왜 그런지는 아직 모르겠음)
if (!$wr_name) {
alert("이름을 입력하여 주십시오.");
}
}

4. gbform.skin.php
4-1) 기존에 wr_id 값이 hidden으로 설정되어있는것을 주석처리한다.

<input type=hidden name=w value='<?=$w?>'>
<input type=hidden name=bo_table value='<?=$bo_table?>'>
<!-- <input type=hidden name=wr_id value='<?=$wr_id?>'> -->
<input type=hidden name=sselect value='<?=$sselect?>'>
<input type=hidden name=stext value='<?=$stext?>'>
<input type=hidden name=section value='<?=$section?>'>
<input type=hidden name=ssort value='<?=$ssort?>'>
<input type=hidden name=sorder value='<?=$sorder?>'>

4-2) 관리자가 새글 작성인경우 ID값을 입력받도록 처리한다.

<? if($is_admin && $w == '') { // updated by root : 관리자가 신규입력 ?>
<tr class='ht'><td>ID : </td><td><input type=text name='wr_id' size=20 maxlength=20 required itemname='ID' value='<?=$wr_id?>' class=input></td></tr>
<? } else { // ###root ?>
<input type=hidden name=wr_id value='<?=$wr_id?>'>

<? if ($is_name) { ?><tr class='ht'><td>이름 : </td><td><input type=text name='wr_name' size=20 maxlength=20 required itemname='이름' value='<?=$name?>' class=input></td></tr><? } ?>
<? if ($is_passwd) { ?><tr class='ht'><td>비밀번호 : </td><td><input type=password name='wr_passwd' size=20 maxlength=20 <?=$passwd_required?> itemname='비밀번호' class=input></td></tr><? } ?>
<? if ($is_email) { ?><tr class='ht'><td>E-MAIL : </td><td><input type=text name='wr_email' maxlength=100 email itemname='E-MAIL' value='<?=$email?>' class='input w99'></td></tr><? } ?>
<? if ($is_homepage) { ?><tr class='ht'><td>홈페이지 : </td><td><input type=text name='wr_homepage' itemname='홈페이지' value='<?=$wr_homepage?>' class='input w99'></td></tr><? } ?>
<? } // ###root ?>

### 보시느라고 수고하셨습니다.
추천
0
  • 복사

댓글 전체

위 사이트의 1:1이 정확하게 어떻게 구현되어있는지는 모르겠습니다만. 같은 기능이 아닐까 생각합니다.
제가 작성한 프로그램의 의도는 관리자가 특정회원만 봐야하는 글을 올리기 위해서 작성된것입니다.

회원이 글을 올리게 되면 회원이 작성한글은 본인과 관리자만 볼수가있습니다.

관리자는 모든 회원의 내용을 볼수있으면,
사용자는 자신이 작성한 글이나, 관리자가 작성시 부여한 회원 아이디가 자신의 아디이면 볼수있는 것입니다.
## 관리자는 글 작성시 ID라는 것을 입력하는데 이곳에 사용하는 ID가 글 조회시 읽을수 있는 사용자 ID가 됩니다.
요즘 1:1게시판이라고 해서,나의 정보로 가보면 1:1 질문에 대한 관리자의 답변을 볼수 있던데,그런 기능인가요?
http://www.icoda.co.kr/myshop/
답변부탁드립니다...
그리고,노고에 감사드립니다..^^
박갑성님 // 회원자신만의 공간입니다.
관리자가 게시판에 회원의 글쓰기 권한을 부여하면 자신만의 글관리가 됩니다.
글쓰기 권한을 부여하지 않는다면 관리자가 올려주는 글만 읽을수가 있죠.
내 글은 다른사람이 읽을수가 없습니다.
© SIRSOFT
현재 페이지 제일 처음으로