권한설정에 대하여 > 그누3질답

그누3질답

권한설정에 대하여 정보

그누보드 권한설정에 대하여

본문

DB 테이블명이 bd_a인 A 게시판 이름을 head.php파일의 상단메뉴로 하였을때
레벨2인 회원은 페이지 상단을 head.php
레벨5인 회원은 페이지 상단을 head_0.php로 적용할려고 합니다.

head.php에서 A의 링크를 어떻게 적용해야 하는지 알려주세요
A게시판은 회원가입후 이용할수 있습니다.

댓글 전체

완두콩님 알려주신대로 하니 해결되었습니다.
몇일동안 발목을 끈이 풀어진듯한 기분이군요? 정말 감사드립니다.

초기 메인화면의 최신글 추출하여 보여주는 게시판이 있는데 게시판의 권한레벨을 2로만 하고 싶은데 게시판 설정에서 보면 모든것이 설정하고자하는 레벨의 이상으로만 되어있어 정회원(레벨5)으로 로그인시에도 보여지는게 문제인데 그냥 사용해야 될것 같습니다.

다시한번 완두콩님 감사드리고 남은 하루 좋은 시간 가지시길.........
되신다고 적으신 부분은... 저도 잘 모르겠네요...-_-a
DESIGN 과 DESIGN1 이 구분되서 화면한구석에 찍히기만 할것 같은데요 ?.?


1.관리자 페이지에서 '상단파일경로' 에  head.php 를 넣으시구요.
2.head.php의 앞부분(3번째줄정도...)에 아래코드 삽입해보세요.
 if ($member[mb_level] == 5) {
  include './head_0.php';
  return;
 }
3,head_0.php 를 레벨 5용으로 만들어 두시고요...

(지금은 비회원,게스트, 그리고 회원,그룹접근 등등은  고려를 안한 상태인데요...
 오직 레벨 5 이냐 아니냐(비회원,관리자 등등) 만 구분...)

이렇게 해두면...
우선은 head.php는 항상 읽어오고요, 레벨5가 아닌경우는 그냥 head.php만 실행...

레벨 5일경우에만  head_0.php를 인클루드하고, 바로 return 시켜요. 여기서 return 되면
head.php의 나머지 아래부분은 더이상 실행이 되지 않고요...
(head.php의 앞부분에서 읽다 만거니 안읽은거나 매한가지... -_-a)

제가 질문을 제대로 이해한건지 잘 모르겠네요 (--)(__)
완두콩님! 답변 감사드립니다.
앞에 질문한 내용은 잘은 몰라도 이리저리 하다보니
// switch (_DOCTYPE_) { } 구문 분리

include "./indexdoctype.php";
switch ($member[mb_level]) {
case 1:
  echo "DESIGN";
  break;
case 2:
  echo "DESIGN";
  break;
case 5:
  echo "DESIGN1";
  break;

위와같이 적용하니까 되기는 합니다.
맨 아리에 있던 include "./indexdoctype.php"; 부분을 윘쪽으로 올리니까 되는데 이유는 저도 초보인지라 모릅니다.

님이 뒤에 적어주신 내용도 한번 해봐야 겠습니다. 알려주신대로 되기만 하면 간단한데 지금까지 해온 과정은 복잡했거든요!

근데 레벨5와 레벨2가 공통으로 이용하는 게시판은 상단파일을 어떻게 적용해야 하나요?
중복된 질문인데 아시고 계시면 답변좀 부탁드립니다.
echo 때문에 나온 에러인데요...
echo "_DOCTYPE_", "DESIGN1";  대신에 아마도
define("_DOCTYPE_", "DESIGN1"); 를 쓰셔야 할듯 한데요...

그런데,
define 은 한번만 가능하고 수정이나 지우기가 안되서,
윗글에 적으신것처럼 index.php의 끝부분에 넣으면 적용이 잘안되요.
index.php 의 245번줄 부근에 있는
include $doc;  보다 윗부분에 넣으셔야 적용이 되요.
($doc 에 대치되는 파일들-gnuboard.php등등-에서 대부분 _DOCTYPE_ 를 define 시키거든요.
 여기서 define 되기때문에 이보다 아래쪽에 넣는건 적용이 안되요.)

....

대충 해보니 이런식도 되는듯한데요 -_-a
head.php의 꼭대기쯤에
 if ($member[mb_level] == 5) {
  include './head_0.php';
  return;
 }
이렇게 넣어두면...
head.php를 항상 include 시키고, 앞부분에서 레벨 5인 경우에만
head_0.php 을 include 시키고 바로 return 하면 아랫부분은 더이상 포함이 안되게... ...
index.php파일의 마지막부분에

// switch (_DOCTYPE_) { } 구문 분리
switch ($member[mb_level]) {
case 1:
  echo "_DOCTYPE_", "DESIGN";
  break;
case 2:
  echo "_DOCTYPE_", "DESIGN";
  break;
case 5:
  echo "_DOCTYPE_", "DESIGN1";
  break;
}
include "./indexdoctype.php";
?>
로 하고

indexdoctype.php파일에서

// DESIGN1 은 상단, 하단 파일을 필요로 하는 정회원용TYPE
    case "DESIGN1" :
        include './head.sub.php';
        include './head_0.php';
        echo $ob_content;
        include './tail.php';
        include './tail.sub.php';
        break;
와 같이 추가하였는데

_DOCTYPE_DESIGN
Warning: Cannot modify header information - headers already sent by (output started at /home/pipe/gnu3/index.php:283) in /home/pipe/gnu3/head.sub.php on line 10

Warning: Cannot modify header information - headers already sent by (output started at /home/pipe/gnu3/index.php:283) in /home/pipe/gnu3/head.sub.php on line 11

Warning: Cannot modify header information - headers already sent by (output started at /home/pipe/gnu3/index.php:283) in /home/pipe/gnu3/head.sub.php on line 12

Warning: Cannot modify header information - headers already sent by (output started at /home/pipe/gnu3/index.php:283) in /home/pipe/gnu3/head.sub.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at /home/pipe/gnu3/index.php:283) in /home/pipe/gnu3/head.sub.php on line 14

위와같이 에러가 납니다.

위 index.php파일의 마지막부분을

// switch (_DOCTYPE_) { } 구문 분리

if ($member[mb_level] <= 2) {
  echo "_DOCTYPE_", "DESIGN";
} elseif ($member[mb_level] >= 5) {
  echo "_DOCTYPE_", "DESIGN1";
}
include "./indexdoctype.php";
?>
와 같이 하여도 같은 에러가 나는데 시원한 답변을 부탁드립니다.

답변하시는분들에게 죄송하지만 제가 초보라서 답변해주시는 내용을 잘 이해하질 못하겠습니다.
아래로 확인하시고 자세한 내용으로 답변하여 주시면 감사하겠습니다.

www.pipe.or.kr/gnu3/index.php
id=test, pass=1111 레벨5
id=test1, pass=1111 레벨2
전체 9,564
그누3질답 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT