au_auth('r','w','d')와 wr_option('html1', 'html2', 'secret', 'mail') ... 정보
au_auth('r','w','d')와 wr_option('html1', 'html2', 'secret', 'mail') ...관련링크
본문
$au_auth는
[adm] auth_list.php와 auth_update.php에서...
checkbox를 이용하여 $r='r' or '' / $w='w' or '' / $d='d' or '' 를 받아서
sql 문에 au_auth='$r,$w,$d' 로 처리하고 있네요.
* 참고로, 이런 방법은 어떨런지...(au_auth는 3개면 되죠, wr_option 이 4개라...)
au_auth SET('read', 'write', 'delete') NOT NULL
checkbox에서 $read=1, '' / $write=2,'' / $delete=4,''를 넘겨주면
$new_auth=$read+$write+$delete;
[adm] auth_list.php와 auth_update.php에서...
checkbox를 이용하여 $r='r' or '' / $w='w' or '' / $d='d' or '' 를 받아서
sql 문에 au_auth='$r,$w,$d' 로 처리하고 있네요.
* 참고로, 이런 방법은 어떨런지...(au_auth는 3개면 되죠, wr_option 이 4개라...)
au_auth SET('read', 'write', 'delete') NOT NULL
SET member | Decimal Value | Binary Value |
read | 1 | 0001 |
write | 2 | 0010 |
delete | 4 | 0100 |
extra | 8 | 1000 |
checkbox에서 $read=1, '' / $write=2,'' / $delete=4,''를 넘겨주면
$new_auth=$read+$write+$delete;
insert into TABLE ..., set au_auth = $new_auth, ...;
NUM으로 삽입(생성)
1 -- read
2 -- write
4 -- delete
8 -- extra
3 -- read, write (1+2)
5 -- read, delete (1+4)
6 -- write, delete (2+4)
7 -- read, write, delete (1+2+4)
...
update TABLE set au_auth = au_auth | NUM;
NUM으로 수정
update TABLE set au_auth = au_auth & ~NUM;
NUM을 삭제
SELECT * FROM TABLE WHERE ((au_auth & (1+2+8) == 0) AND(au_auth & (4+16) == 4+16));
* 그누보드에서는 권한 체크를 하고 있으니, 이렇게 검색할 필요는 없겠죠... 서버에 부하가 많이 걸리나 봅니다.
PHP에서 ...
$result=mysql_query($query);
if(mysql_num_rows($result)>0){
$row=mysql_fetch_row($result);
$options=explode("','",preg_replace("/(enum|set)\('(.+?)'\)/","\\2",$row[1]));
}
* 그누보드도 이와 비슷하게 처리하고 있죠.
댓글 전체
* adm/auth_list.php Line:184
<tr align=center><!-- r,w,d를 1,2,4로 수정 -->
<td width=33%><input type=checkbox name='r' value='1' checked></td>
<td width=33%><input type=checkbox name='w' value='2'></td>
<td width=33%><input type=checkbox name='d' value='4'></td>
</tr>
* adm/auth_update.php Line:12
$sql = " insert into $g4[auth_table]
set mb_id = '$mb_id',
au_menu = '$au_menu',
au_auth = $r+$w+$d ";//au_auth = '$r,$w,$d' "; 수정
$result = sql_query($sql, FALSE);
if (!$result) {
$sql = " update $g4[auth_table]
set au_auth = $r+$w+$d
where mb_id = '$mb_id'
and au_menu = '$au_menu' ";//set au_auth = '$r,$w,$d' 수정
sql_query($sql);
<tr align=center><!-- r,w,d를 1,2,4로 수정 -->
<td width=33%><input type=checkbox name='r' value='1' checked></td>
<td width=33%><input type=checkbox name='w' value='2'></td>
<td width=33%><input type=checkbox name='d' value='4'></td>
</tr>
* adm/auth_update.php Line:12
$sql = " insert into $g4[auth_table]
set mb_id = '$mb_id',
au_menu = '$au_menu',
au_auth = $r+$w+$d ";//au_auth = '$r,$w,$d' "; 수정
$result = sql_query($sql, FALSE);
if (!$result) {
$sql = " update $g4[auth_table]
set au_auth = $r+$w+$d
where mb_id = '$mb_id'
and au_menu = '$au_menu' ";//set au_auth = '$r,$w,$d' 수정
sql_query($sql);
좋은 내용 감사합니다.
지금 코드에 별문제가 없다면 당분간(?) 더 사용하도록 하겠습니다.
지금 코드에 별문제가 없다면 당분간(?) 더 사용하도록 하겠습니다.
그누보드5+PHP5+MySQL5를 기다리며...늘 감사드립니다.
현재(PHP4,MySQL4 환경일테죠) 문제 없지만,
PHP5+MySQL5 환경에 맞추려 소스를 훑어보며 몇차례 질문아닌 질문을 올렸다가...
게시판만 어질러 놓는 느낌도 있고 해서 지웠었습니다.
PHP의 변화에 맞춰 그누보드5 역시 많은 변화가 예상되어, 필요한 부분 수정하여 적용한다는 게 부질없다는 생각도 듭니다.
현재(PHP4,MySQL4 환경일테죠) 문제 없지만,
PHP5+MySQL5 환경에 맞추려 소스를 훑어보며 몇차례 질문아닌 질문을 올렸다가...
게시판만 어질러 놓는 느낌도 있고 해서 지웠었습니다.
PHP의 변화에 맞춰 그누보드5 역시 많은 변화가 예상되어, 필요한 부분 수정하여 적용한다는 게 부질없다는 생각도 듭니다.
헉~
그누보드5 ㅜ,.ㅜ
그누보드5 ㅜ,.ㅜ
저눈 먼소리인지 몰르겠지만..ㅠㅜ
ㅎㅎ 저두 이런실력이 있었으면 좋겠네영 ;;;
여하튼 좋은 내용 감사합니다.ㅡㅠ
ㅎㅎ 저두 이런실력이 있었으면 좋겠네영 ;;;
여하튼 좋은 내용 감사합니다.ㅡㅠ