특정 회원만 접근 가능한 게시판을 만들려고 합니다. 조언 부탁드립니다. 채택완료
곤주
1년 전
조회 4,070
그누보드5 기본 테마인 BASIC 테마를 사용하고 있습니다.
관리자와 특정 회원만 볼 수 있는 게시판을 만들려고 합니다.
검색해 보니까,
list.skin.php 최상단에 아래의 코드를 추가하면 된다는 것을 알았습니다.
</p>
<p>if ($is_admin && $member['mb_id'] != "abc") { // 아이디 abc와 괸리자만 접근 가능
alert("접근할수 없습니다.");
exit; //접근금지
}</p>
<p>
그런데
skin/basic/ 폴더 안의 list.skin.php 에 위 코드를 삽입할 경우,
전체 게시판에 적용되는 것으로 알고 있습니다.
특정 회원을 위한 게시판을 만들어서
그 게시판에는 관리자와 지정한 회원만 접근이 가능하도록 하려면,
어느 폴더의 list.skin.php를 수정해야 하는지 조언 부탁드립니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
답변에 대한 댓글 17개
�
곤주
1년 전
�
리오닥터
1년 전
여러개면
if (in_array($bo_table,["free","gallery"])) { 이렇게 할수도 있어요
if (in_array($bo_table,["free","gallery"])) { 이렇게 할수도 있어요
�
리오닥터
1년 전
여러개면
if (in_array($bo_table,["free","gallery"])) { 이렇게 할수도 있어요
묶어서 할거면 저렇게 하면되구요 아니면 따로 따로 한다면 아까 처럼 하면되구요
if (in_array($bo_table,["free","gallery"])) { 이렇게 할수도 있어요
묶어서 할거면 저렇게 하면되구요 아니면 따로 따로 한다면 아까 처럼 하면되구요
�
곤주
1년 전
게시판 한 개당 회원 한 명에게 배정하려고 해서 따로 따로 하는 게 맞는 것 같습니다.
말씀해 주신 것처럼
[code]
if ($bo_table == "free") {
if (!$is_admin && $member['mb_id'] != "abc") { // 아이디 abc와 괸리자만 접근 가능
alert("접근할수 없습니다.");
exit; //접근금지
}
}
if ($bo_table == "free1") {
if (!$is_admin && $member['mb_id'] != "def") { // 아이디 def와 괸리자만 접근 가능
alert("접근할수 없습니다.");
exit; //접근금지
}
}
[/code]
이렇게 적용하니까 되는 것 같습니다^^
혹시 게시판에 접근 아이디를 추가하려고 할 경우에는
if (!$is_admin && $member['mb_id'] != "abc, def") {
이런 식으로 하면 될까요?
말씀해 주신 것처럼
[code]
if ($bo_table == "free") {
if (!$is_admin && $member['mb_id'] != "abc") { // 아이디 abc와 괸리자만 접근 가능
alert("접근할수 없습니다.");
exit; //접근금지
}
}
if ($bo_table == "free1") {
if (!$is_admin && $member['mb_id'] != "def") { // 아이디 def와 괸리자만 접근 가능
alert("접근할수 없습니다.");
exit; //접근금지
}
}
[/code]
이렇게 적용하니까 되는 것 같습니다^^
혹시 게시판에 접근 아이디를 추가하려고 할 경우에는
if (!$is_admin && $member['mb_id'] != "abc, def") {
이런 식으로 하면 될까요?
�
리오닥터
1년 전
아이디도 배열에 넣으시면되요
if(in_array($member['mb_id'],["def","test"])) {
혹은
if(!in_array($member['mb_id'],["def","test"])) {
if(in_array($member['mb_id'],["def","test"])) {
혹은
if(!in_array($member['mb_id'],["def","test"])) {
�
곤주
1년 전
회원 한 명 한 명에게 각각 본인의 게시판을 배정해 준 후에
'회원 본인'과 '관리자' 그리고 '부관리자'만 접근이 가능하게 하려고 해서
처음 알려 주신 방법으로 코드를 작성해야 하는 것 같습니다.
예를 들어,
회원 abc에게 free라는 게시판을 만들어 준 후에,
free라는 게시판에 '관리자(admin)'와 '부관리자(def)' 그리고 '회원(abc)'만 접속이 가능하게 하는 것입니다.
댓글 답변에서 제시해 주신 코드처럼
아이디를 따옴표로 묶어서 콤마로 나열해 주면 되겠네요.
[code]
if ($bo_table == "free") {
if (!$is_admin && $member['mb_id'] != "abc","def") { // abc와 def 그리고 관리자만 접근 가능
alert("접근할수 없습니다.");
exit; //접근금지
}
}
[/code]
이런 식으로요.
아이디 추가하는 것은 아직 적용해 보지는 못했는데, 잘될 것 같네요^^
귀찮으실텐데, 끝까지 답변해 주셔서 감사드립니다.
'회원 본인'과 '관리자' 그리고 '부관리자'만 접근이 가능하게 하려고 해서
처음 알려 주신 방법으로 코드를 작성해야 하는 것 같습니다.
예를 들어,
회원 abc에게 free라는 게시판을 만들어 준 후에,
free라는 게시판에 '관리자(admin)'와 '부관리자(def)' 그리고 '회원(abc)'만 접속이 가능하게 하는 것입니다.
댓글 답변에서 제시해 주신 코드처럼
아이디를 따옴표로 묶어서 콤마로 나열해 주면 되겠네요.
[code]
if ($bo_table == "free") {
if (!$is_admin && $member['mb_id'] != "abc","def") { // abc와 def 그리고 관리자만 접근 가능
alert("접근할수 없습니다.");
exit; //접근금지
}
}
[/code]
이런 식으로요.
아이디 추가하는 것은 아직 적용해 보지는 못했는데, 잘될 것 같네요^^
귀찮으실텐데, 끝까지 답변해 주셔서 감사드립니다.
�
리오닥터
1년 전
if ($bo_table == "free") {
if ($is_admin && in_array($member['mb_id'], ["abc","def"])) { // abc와 def 그리고 관리자만 접근 가능
alert("접근할수 없습니다.");
exit; //접근금지
}
}
이렇게 해야되요 in_array로 해서 첫인자는 문자열이고 두번째 인자는 배열이고 비교대상 입니다.
$is_admin 이 관리자 이구요
if($is_admin || in_array($member['mb_id'], ["abc","def"]) || $board['bo_admin'] == "부관리자") {
alert("접근할수 없습니다.");
exit; //접근금지
}
이거에요 일단 테스트 해보세요
if ($is_admin && in_array($member['mb_id'], ["abc","def"])) { // abc와 def 그리고 관리자만 접근 가능
alert("접근할수 없습니다.");
exit; //접근금지
}
}
이렇게 해야되요 in_array로 해서 첫인자는 문자열이고 두번째 인자는 배열이고 비교대상 입니다.
$is_admin 이 관리자 이구요
if($is_admin || in_array($member['mb_id'], ["abc","def"]) || $board['bo_admin'] == "부관리자") {
alert("접근할수 없습니다.");
exit; //접근금지
}
이거에요 일단 테스트 해보세요
�
리오닥터
1년 전
그리고 부관리자는 if($board['bo_admin'] == "부관리자") {} 이걸 써야되요
�
곤주
1년 전
아... 무조건 나열하는 게 아니군요... 창피하네요;;;
in_array에 대해 찾아보고 공부 좀 해야겠습니다.
알려주셔서 감사합니다^^
아, 그리고 참고로... 부관리자라기보다는... 특정 아이디를 추가로 하나 더 지정해서 해당 게시판 글을 볼 수 있도록 하려고 하는 것입니다.
그리고
if ($is_admin && in_array($member['mb_id'], ["abc","def"])) { 이 아니라,
if (!$is_admin && in_array($member['mb_id'], ["abc","def"])) { 이렇게 해야
관리자와 abc 그리고 def를 제외한 아이디는 접근 금지 아닌가요?
항상 리오닥터님 덕분에 문제를 해결하고 조금씩 배워나갑니다. 감사합니다.
저도 무언가 도움을 드리고 싶지만,
PHP 쪽으로는 제가 뭘 해 드릴 수 있는 입장은 아니고... ^^;;
나중에라도 혹시 근골격계 질환 관련해서
정보가 필요하신 경우 있으시면 쪽지 주세요.
근골격계 관련해서 보건의료인 교육을 하고 있습니다.
근골격계 질환 치료에 대한 것부터,
질환이 아니더라도 운동역학 등 필요한 부분이 있다면,
이런 부분에서는 조언해 드릴 수 있습니다^^
in_array에 대해 찾아보고 공부 좀 해야겠습니다.
알려주셔서 감사합니다^^
아, 그리고 참고로... 부관리자라기보다는... 특정 아이디를 추가로 하나 더 지정해서 해당 게시판 글을 볼 수 있도록 하려고 하는 것입니다.
그리고
if ($is_admin && in_array($member['mb_id'], ["abc","def"])) { 이 아니라,
if (!$is_admin && in_array($member['mb_id'], ["abc","def"])) { 이렇게 해야
관리자와 abc 그리고 def를 제외한 아이디는 접근 금지 아닌가요?
항상 리오닥터님 덕분에 문제를 해결하고 조금씩 배워나갑니다. 감사합니다.
저도 무언가 도움을 드리고 싶지만,
PHP 쪽으로는 제가 뭘 해 드릴 수 있는 입장은 아니고... ^^;;
나중에라도 혹시 근골격계 질환 관련해서
정보가 필요하신 경우 있으시면 쪽지 주세요.
근골격계 관련해서 보건의료인 교육을 하고 있습니다.
근골격계 질환 치료에 대한 것부터,
질환이 아니더라도 운동역학 등 필요한 부분이 있다면,
이런 부분에서는 조언해 드릴 수 있습니다^^
�
곤주
1년 전
[code]
if ($bo_table == "free") {
if (!$is_admin && in_array($member['mb_id'], ["abd","def"])) { // 회원 아이디와 관리자만 접근 가능
alert("본인만 접근할 수 있습니다.");
exit; //접근금지
}
}
[/code]
위와 같이 적용해 보니까 오류가 발생하네요.
if (!$is_admin && in_array($member['mb_id'], ["abd","def"])) { 여기에 오류가 있다고 나옵니다.
if ($bo_table == "free") {
if (!$is_admin && in_array($member['mb_id'], ["abd","def"])) { // 회원 아이디와 관리자만 접근 가능
alert("본인만 접근할 수 있습니다.");
exit; //접근금지
}
}
[/code]
위와 같이 적용해 보니까 오류가 발생하네요.
if (!$is_admin && in_array($member['mb_id'], ["abd","def"])) { 여기에 오류가 있다고 나옵니다.
�
리오닥터
1년 전
그러시는군요~ 근데 어떻게 해서 관련 없는 전공일을 하시는지 여쭤볼수있을까요? ㅋㅋ
그리고 관리자가 아니면 !$is_admin 이게 관리자 가 아니다 라는 말이구요
$is_admin 만 있으면 관리자를 포함하는거죠
그리고 in_array($member['mb_id'], ["abd","def"]) 이거는 현재 회원 배열이 대상자 오른쪽에 있는 인자 배열이구요
그러면 abd 회원이나, def 회원 (즉 아이디) 를 가르킵니다.
그러면 이게 정답일거 같아요
if($is_admin && in_array($member['mb_id'], ["abd","def"])) {
alert("접근할수 없습니다.");
exit;
}
여기서 관리자가 아니면 $is_member 회원이면 변수로 사용하면 되구요
그리고 관리자가 아니면 !$is_admin 이게 관리자 가 아니다 라는 말이구요
$is_admin 만 있으면 관리자를 포함하는거죠
그리고 in_array($member['mb_id'], ["abd","def"]) 이거는 현재 회원 배열이 대상자 오른쪽에 있는 인자 배열이구요
그러면 abd 회원이나, def 회원 (즉 아이디) 를 가르킵니다.
그러면 이게 정답일거 같아요
if($is_admin && in_array($member['mb_id'], ["abd","def"])) {
alert("접근할수 없습니다.");
exit;
}
여기서 관리자가 아니면 $is_member 회원이면 변수로 사용하면 되구요
�
곤주
1년 전
https://sir.kr/qa/505670
위 링크 댓글을 보고 학습했었는데 조금 헷갈리네요 ^^;;
if($is_admin && in_array($member['mb_id'], ["abd","def"])) {
alert("접근할수 없습니다.");
exit;
}
위 내용처럼 하면 admin과 abd 그리고 def는 접근할 수 없다는 것이 아닌가요?
!가 들어가야 admin과 abd 그리고 def를 제외하고는 접근할 수 없다는 것이고요.
그런데 !를 넣어도 빼도 오류가 나네요 ㅜㅠ
if($is_admin && in_array($member['mb_id'], ["abd","def"])) { 에 문제가 있다고 에러가 뜹니다.
위 링크 댓글을 보고 학습했었는데 조금 헷갈리네요 ^^;;
if($is_admin && in_array($member['mb_id'], ["abd","def"])) {
alert("접근할수 없습니다.");
exit;
}
위 내용처럼 하면 admin과 abd 그리고 def는 접근할 수 없다는 것이 아닌가요?
!가 들어가야 admin과 abd 그리고 def를 제외하고는 접근할 수 없다는 것이고요.
그런데 !를 넣어도 빼도 오류가 나네요 ㅜㅠ
if($is_admin && in_array($member['mb_id'], ["abd","def"])) { 에 문제가 있다고 에러가 뜹니다.
�
리오닥터
1년 전
abc 이렇게 넣으신건 아닌거죠? 회원 아이디로 넣으셔야되요
그리고 오류 내용도 전부다 알려주세요
그리고 오류 내용도 전부다 알려주세요
�
곤주
1년 전
네 회원 아이디를 넣었습니다.
Parse error: syntax error, unexpected '[' in g5/skin/board/basic/list.skin.php on line 5
5번째 라인은 아래 코드입니다.
if($is_admin && in_array($member['mb_id'], ["abd","def"])) { // 회원 아이디와 관리자만 접근 가능
Parse error: syntax error, unexpected '[' in g5/skin/board/basic/list.skin.php on line 5
5번째 라인은 아래 코드입니다.
if($is_admin && in_array($member['mb_id'], ["abd","def"])) { // 회원 아이디와 관리자만 접근 가능
�
리오닥터
1년 전
아! php 버전이 낮아서 그런가봐요 ㅋㅋㅋ 보통 7이나 8을 사용하는데
if($is_admin && in_array($member['mb_id'], array("abd","def"))) { // 회원 아이디와 관리자만 접근 가능
이렇게 해보세요 보통 [] 으로 하는데 버전이 낮으면 array() 로 하면되요
if($is_admin && in_array($member['mb_id'], array("abd","def"))) { // 회원 아이디와 관리자만 접근 가능
이렇게 해보세요 보통 [] 으로 하는데 버전이 낮으면 array() 로 하면되요
�
곤주
1년 전
아... 그러네요...
저번에도 php 버전 때문에 한참 애먹다가 결국 알고 보니 버전 문제였는데;;;
웹호스팅을 옮기던지 해야되나...
이제 오류는 나오지 않는데,
관리자와 지정된 아이디만 접근이 가능한 게 아니라,
다른 아이디(비회원)도 접근이 가능합니다.
저번에도 php 버전 때문에 한참 애먹다가 결국 알고 보니 버전 문제였는데;;;
웹호스팅을 옮기던지 해야되나...
이제 오류는 나오지 않는데,
관리자와 지정된 아이디만 접근이 가능한 게 아니라,
다른 아이디(비회원)도 접근이 가능합니다.
�
곤주
1년 전
일단 특정 회원 아이디 한 개와 관리자만 접속이 가능한 것까지는 성공은 해서
기분이 좋네요^^ㅎㅎ
in_array, array 에 대해서 좀 더 학습해 보고
다시 시도해서 아이디 추가하는 것도 다시 도전해 봐야겠습니다.
도와주셔서 감사합니다^^
그리고 저는 이쪽 전공은 아니지만
어릴 적부터 html이랑 플래시로 사이트를 이렇게 저렇게 만들며
재미를 붙였었어요.
그 당시에는 직접 서버도 구축해 보겠다고
아무것도 모르면서 아마존 서버케이스 큰 것도 구입하고 그랬었는데... ㅎㅎ
전공은 다른 쪽으로 갔지만,
늦었지만 조금씩 공부하고 있습니다^^
기분이 좋네요^^ㅎㅎ
in_array, array 에 대해서 좀 더 학습해 보고
다시 시도해서 아이디 추가하는 것도 다시 도전해 봐야겠습니다.
도와주셔서 감사합니다^^
그리고 저는 이쪽 전공은 아니지만
어릴 적부터 html이랑 플래시로 사이트를 이렇게 저렇게 만들며
재미를 붙였었어요.
그 당시에는 직접 서버도 구축해 보겠다고
아무것도 모르면서 아마존 서버케이스 큰 것도 구입하고 그랬었는데... ㅎㅎ
전공은 다른 쪽으로 갔지만,
늦었지만 조금씩 공부하고 있습니다^^
댓글을 작성하려면 로그인이 필요합니다.
미니님a
Expert
1년 전
</p>
<p>// 게시판 그리고 아이디 입력하세요</p>
<p>$allowed_ids = [</p>
<p> "free" => "abc",</p>
<p> "free1" => "def"</p>
<p>];</p>
<p> </p>
<p>if (isset($allowed_ids[$bo_table])) {</p>
<p> if ($is_admin && $member['mb_id'] != $allowed_ids[$bo_table]) {</p>
<p> alert("접근할수 없습니다.");</p>
<p> exit; // 접근금지</p>
<p> }</p>
<p>}</p>
<p> </p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
곤주
1년 전
답변 감사합니다.
먼저 답변 주신 회원님의 조언으로 해결하였습니다.
미니님a의 코드도 학습해 보려고 해 보았는데,
코드 에러가 뜹니다.
아마도 제가 코드를 입력하는 과정에서 오류가 있는 것 같습니다.
학습해 보도록 하겠습니다.
답변 주셔서 감사드립니다.
먼저 답변 주신 회원님의 조언으로 해결하였습니다.
미니님a의 코드도 학습해 보려고 해 보았는데,
코드 에러가 뜹니다.
아마도 제가 코드를 입력하는 과정에서 오류가 있는 것 같습니다.
학습해 보도록 하겠습니다.
답변 주셔서 감사드립니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
[code]
if ($bo_table == "free") {
if ($is_admin && $member['mb_id'] != "abc") { // 아이디 abc와 괸리자만 접근 가능
alert("접근할수 없습니다.");
exit; //접근금지
}
}
if ($bo_table == "free1") {
if ($is_admin && $member['mb_id'] != "def") { // 아이디 def와 괸리자만 접근 가능
alert("접근할수 없습니다.");
exit; //접근금지
}
}
[/code]
이런 식으로 순서대로 나열하면 될까요?