techus qrcode
MEMBER LOGIN

  • Server : Sulinux 2.0
  • Apache/2.0.64 (unix)
  • PHP version 5.2.17
  • Mysql 5.0.92
  • 1차: ns1.techus.net (211.232.13.7)
  • 2차: ns2.techus.net (211.232.13.3)
  • 현재 네임서버 제공 안합니다.
  • 네임서버는 도메인관리업체에서
  • 제공하는 네임서버로 하시고
  • 레코드관리 A : 211.232.13.7 로
  • 설정 하세요.감사합니다.

DNS Powered by DNSEver.com
  • MySQL DB 연결설정 ( http://www.ausangel.org/bbs/

    MySQL DB 연결설정 ( http~

  • 게시글 글등록시 관리자 네이트온으로 알림

    게시글 글등록시 관~

  • 게시판 글등록시 관리자 마이피플로 알림

    게시판 글등록시 관~

  • 선생님 설명입니다..^^

    선생님 설명입니다..^~

  • 테크 모바일을 위한 크롬

    테크 모바일을 위한 ~

  • 3단CSS메뉴 플러그인(멋쟁이님 삽질 빌더용) ”

    3단CSS메뉴 플러그인(~

  1. 1. 뭇쏘 509,500
  2. 2. 아이케 268,835
  3. 3. 예랑맨 182,270
  4. 4. bluewolf 163,255
  5. 5. 청주산의 154,510
  6. 6. 이규하 148,225
  7. 7. 아이슬 119,730
  8. 8. 선장 112,365
  9. 9. 조나단 105,110
  10. 10. SDK 98,925
  1. 1. 청주산의 3343
  2. 2. 아이케 2823
  3. 3. 예랑맨 1611
  4. 4. SDK 1028
  5. 5. 이규하 951
  6. 6. 늑대소냐 726
  7. 7. bluewolf 495
  8. 8. 컴퓨터나라 385
  9. 9. 아이슬 345
  10. 10. 어우름 282
  1. jkwon ♂ 12/27
  2. angel ♂ 12/19
  3. isaac ♂ 5/26
  4. 랩퍼투혼 ♂ 11/24
  5. 노톨릭 ♂ 9/23
  6. wertetrrt ♀ 4/9
  7. 레드 ♂ 3/31
  8. medipara ♂ 3/11
  9. 밥통 ♂ 4/16
  10. 우짜맨 ♂ 1/16
테크노트 메인 » 테크노트 » 활용팁 » 특정 게시판의 그룹회원관리의 방법
 
추천:0 조회:13740

title 특정 게시판의 그룹회원관리의 방법 [5]

2009-07-24 (금) 11:20 멋쟁이냐 (IP:61.xxx.103)
홈페이지
http://2kh.techus.net
크게 작게
현재 테스트단계에 있는 그룹회원관리의 방법을 소개 해 보려고 합니다.
테크노트에서 기본으로 제공되는 그룹으로 나누어 지는 것은 아닙니다.
회원가입시의 정보에서 각각 그에 따른 코드를 부여해서 분류 하는 정도 입니다.
이 점은 미리 알려 드립니다. 다 보시고 나중에 실망하실까봐 ...;
그리고 제가적용한 사이트가 아파트 홈페이지이기 때문에 아파트홈페이지를 기준으로 말해 보겠습니다.

1. 회원정보등록 과 일반보드에 회원정보 등록
가입을 위해 회원정보를 등록할때 '주공아파트', '한신아파트' , 기타.... 의 아파트 입력란을 회원보드(memberboard) add1 에서 설정을 해 줍니다.  가입자의 선택의 폭을 줄여 셀렉트박스나 라디오버튼을 이용해서 정해진 룰대로만 입력되도록 합니다.
예) 거주지선택=select:/단독주택/주공아파트/한신아파트/(*)
저는 이렇게 셀렉트 박스를 이용했습니다. 이제 아파트 코드를 부여할건데요. 이 설정 순서대로 코드가 부여되니깐 순서를 지켜주세요.
예) 아파트 코드 부여하기
단독주택 = apt001
주공아파트 = apt002
한신아파트 = apt003
라고 각 아파트별로 코드를 부여 하려고 생각 중입니다.
이렇게 할거면 regist_form.php 파일에서 셀렉트박스를 직접 만들어서 value 만 전송해도 문제는 없습니다. 그런데, 아파트홈페이지가 늘어날수록 소스를 매번 수정해야 하는 번거로움이 있을것 같아서 중간에 그만두었습니다.
회원등록보드 설정에서 회원정보 저장 직후에 include 파일설정하는 부분을 이용해서 각 설정을 강제로 넣어 줄겁니다.
m_resave.php 파일을 만들고 member 스킨폴더에 저장합니다.
<!----------------여기부터 소스 시작 ----------------------->
<? if(!IncludedConfig()) exit;
$wdate = time(); //시간설정

#############회원정보 수정 모드일때 ########################
if($modify){
 @mysql_query(" update a_tn2_$Mdata[add10]member_list set user_add3='$m_nick',user_add5='$tel2' where user_add1='$m_id' ");
 
 
 
} else {
 
 
###########회원정보 가입 모드일때###################################
 
//회원보드설정을 읽는다.
$mr_data=mysql_fetch_array(mysql_query(" select * from a_tn3_memberboard_ad where no='1' limit 1 "));
$apt_name = explode("/", $mr_data[tx2_5]); //회원보드에 저장된 아파트명을 / 로 구분
$arr_str = count($apt_name); // 슬러시 구분된 갯수
for($i = 0; $i < $arr_str; $i++) {
$apt_name[$i]; //$apt_name[0]..[1]..[2] 변수에 저장한다.
if ($apt_name[$i]==$add1) $apt_code='apt'.substr('00'.$i,-3); // 회원보드에 등록된 아파트명과 입력된 아파트명이 같다면 $apt_code를 부여함
}

//회원관리 보드에 아파트 코드 업데이트
 @mysql_query(" update a_tn3_memberboard_list set add10='$apt_code' where m_id='$m_id' ");
if ($apt_code != 'apt001') { //아파트 코드가 apt001 이 아니라면,
//일반보드에 정보 등록함
 $sqls = "insert into a_tn2_{$apt_code}member_list (division,thread,replycnt,wdate,secret,user_add1,user_add2,user_add3,user_add4,user_add5) values ('1','0','0','$wdate','0','$m_id','$m_name','$m_nick','$m_level','$tel2')";
    $result = @mysql_query($sqls);
    if(!$result) db_error($sqls);
    $uids = mysql_insert_id();
    $muids = "-".$uids;
    @mysql_query("update a_tn2_{$apt_code}member_list set uid = '$muids', follow = '$uids' where no = '$uids'");
//보드 리스트 설정 테이블 _ad [tx6_8] 항목을 읽어서 +1을 해주고 업데이트함.
 $b_no_data=mysql_fetch_array(mysql_query(" select * from a_tn2_{$apt_code}member_ad where no='1' limit 1 "));
 $b_no_data=$b_no_data[tx6_8]+1;
 @mysql_query(" update a_tn2_{$apt_code}member_ad set tx6_8='$b_no_data' where no='1' ");
}
}
?>
<!----------------여기까지 소스 끝----------------------->
이렇게 m_resave.php 파일을 만들고 '회원등록저장 직후' 란에 파일경로를 적어 주세요.
소스를 보시면 아파트명은 회원보드 add1을 이용해서 명을 받고 회원등록 직후에 다시 저장된 정보를 읽어와서 add10에 회원보드 add1에서 설정된 순서대로 코드를 만들어 넣어 줍니다.
또, 일반보드({$apt_code}member) user_add1, 2, 3, 4, 5 에 아이디,이름,별명,레벨,전화번호 를 등록 하게 됩니다.
회원정보 수정시에는 회원보드에는 당연히 수정되어지고, 일반보드에도 바로 수정되어 집니다. 여기서 회원이 직접 수정될수 있는것은 별명이랑 전화번호 밖에 없네요.
일반보드에는 user_add1~5까지 생성되어 있는 상태여야 하구요. 일반보드의 보드명은 {$apt_code}member 이런식으로 되겠네요. 예)apt002member 주공아파트일때
단독주택 회원은 일반보드에 정보가 등록되지 않도록 했어요. 관리해줄 관리자가 너무 광범위해서...ㅋ
여기까지가 회원정보 가입시 회원보드와 일반보드에 코드 및 정보를 등록하는 절차 입니다.
 
2. 각 보드에 특정회원 접근 설정 하기
각보드에 회원들의 아파트코드별로 접근 여부를 결정하는 설정입니다.
보드설정 10-1 $Bconfig[config_add1] 에는 이 보드가 특정 아파트의 보드라면 그 해당 코드와 아파트명을 입력하면 됩니다.
보드설정 10-2 $Bconfig[config_add2] 에는 현재 보드의 타아파트 회원의 접근 여부를 설정 합니다.
 
위 에서는 주공아파트의 설정을 보여 준거구요.
$Bconfig[config_add2] 에서 0/1/2 이렇게 입력된것은 목록,본문,쓰기 접근을 모두 허용하지 않겠다는 뜻입니다.(슬러시로 구분)
예) 만약 0/1 만 입력되면 목록,본문 두가지만 접근허용을 금지한다는 뜻입니다. config_add2를 공란으로 비운다면 모두 허용이 되겠죠.
0 = 목록
1 = 본문
2 = 쓰기
주의점으로는 보드권한 설정에서,,,,  만약 본문보기 권한을 0레벨로 설정하고 config_add2에서 '1' 을 입력하였다하더라도 모든방문자와 로그인하지 않은 타 아파트사람도 목록을 볼수 있게 되고, 로그인된 타 아파트 회원은 본문을 볼수 없게되겠네요. 이 부분은 코딩을 몇줄 더 해주면 될거 같은데 귀차니즘에 그냥~~ 잘 맞추어 사용하시길.. ㅡ.ㅡㅋ
 

3. 각 스킨파일(2_index.php , 3_body.php , 4_write.php)에 코딩하기
회원정보에 아파트 코드가 만들어 졌고 보드 설정이 되었다면 각 스킨에 코딩을 해 주어야 합니다.
먼저, 현재 접속된 보드에 설정된 아파트코드 불러 오는 소스파일을 apt_code.php 로 하나 만듭니다.
꼭 만들필요는 없고 각 파일에 소스를 넣어 주어도 괜찮은데, 코드변수를 사용할곳이 많을것 같아서 include 만 하도록 파일을 하나 만들었습니다.
<!-------------여기부터 소스 시작 ------------------>
<? if(!IncludedConfig()) exit;
//현재 접속된 보드설정 config_add1 에 설정된 아파트코드/아파트명을 구분해서 변수로 활용
$apt_code = explode("/", $Bconfig['config_add1']); // config_add1 에 저장된 문자를 슬러시로 구분해서
for($i = 0; $i < sizeof($arr_str); $i++) {
$apt_code[$i]; //$apt_code[0]..[1] 변수에 저장한다.
}
?>
<!-------------여기까지 끝 ---------------------------->
만약 주공아파트의 설정되어 있는 보드에 접속되어 있다면~ config_add1 에 설정된 apt002/주공아파트 에서
아파트코드 'apt002' 는 $apt_code[0] 의 변수로 활용되고,
아파트명인 '주공아파트' 는 $apt_code[1] 의 변수로 활용 됩니다.

이제 2_index.php 파일상단에 코딩을 해줍니다.
<!------------------- 여기부터 소스 시작 ------------------------>
<?
//아파트 코드와 멀티설정번호를 불러옴 아파트코드변수 $apt_code[0], 아파트명변수 $apt_code[1]
include "$this_skin/apt_code.php";
if($you_Manager<6) {//관리자6레벨이상 예외
 if($you_Member[m_id] and $Bconfig['config_add2']) {// 회원 로그인 되었을때 그리고 config_add2가 공란이 아닐때,
  $Mdata=SQL_get_Mdata($you_Member[m_id]); //해당 아이디의 데이타를 꺼내옴
  if ($apt_code[0] != $Mdata['add10']) {//아파트코드와 회원아파트코드가 일치하지 않는다면,
   $arr_str = explode("/", $Bconfig['config_add2']); // config_add2 에 저장된 문자를 슬러시로 구분해서
   for($i = 0; $i < sizeof($arr_str); $i++) $arr_str[$i]; //$arr_str[0]..[1]..[2] 변수에 저장한다.
   if ($arr_str[0]=='0' or $arr_str[1]=='0' or $arr_str[2]=='0') error_msg('죄송합니다! '.$apt_code[1].' 회원의 공간입니다. \n\n'.$you_Member[m_name].' 님은 목록을 열람할 권한이 없습니다.');
  }
 }
}
?>
<!------------------여기 까지 소스 끝 ------------------------------>
3_body.php 파일에서는 위 소스에서
if ($arr_str[0]=='0' or $arr_str[1]=='0' or $arr_str[2]=='0') error_msg('죄송합니다!~~~
이것을
if ($arr_str[0]=='1' or $arr_str[1]=='1' or $arr_str[2]=='1') error_msg('죄송합니다!~~~
이렇게 바꾸어 주면 되겠네요.
4_write.php 파일에서는
if ($arr_str[0]=='2' or $arr_str[1]=='2' or $arr_str[2]=='2') error_msg('죄송합니다!~~~
이렇게 바꾸어 주고 각각 error_msg 만 변경 해주면 끝.
좀 길어졌네요...
아직까지는 이상없이 잘 되는것 같은데 문제점이나 지적부탁드립니다.
character
멋쟁이냐
반갑습니다.
댓글 5개

이름아이콘 늑대소냐

회원사진

`멋쟁이냐` 님이 선택한 글 입니다.

이걸 팁으로 올려 주셨군요...^^
감사합니다..
아주아주 유용하게 쓰겠습니다...^^
사용법 정리 하시는데 많은시간이 소비되었을것 같아요.... 09.07.24 14:20

   

이름아이콘 아이케

`멋쟁이냐` 님이 선택한 글 입니다.

멋지십니다!^^
멋쟁이냐님은 부업으로 요업종 하셔도 충분히 통하실듯해요^^ 09.07.24 14:42

   

이름아이콘 멋쟁이냐

회원캐릭터

부업으로 돈을 번다는 건 저에겐 좀 무리일듯 ㅋㅋㅋ; 책임감이 너무 많이 따라서...이계통의 지인들도 없고...ㅋ
늑대소냐님 소스도 잘 사용하겠습니다 ^^

2_index 3_body 4_write 에 각각 소스 넣지 않고 1_main_html 에만 넣고 하는 방법도 있는데 이방법은 테크노트 활용팁에도 올렸어요.
http://technote.co.kr/php/technote1/board.php?board=apple&command=body&no=895


<? //아파트 코드와 멀티설정번호를 불러옴 아파트코드변수 $apt_code[0], 아파트명변수 $apt_code[1]
include "$this_skin/apt_code.php";
if($you_Manager<6) {//관리자6레벨이상 예외
if($you_Member[m_id] and $Bconfig['config_add2']) {// 회원 로그인 되었을때 그리고 config_add2가 공란이 아닐때,
$Mdata=SQL_get_Mdata($you_Member[m_id]); //해당 아이디의 데이타를 꺼내옴
if ($apt_code[0] != $Mdata['add10']) {//아파트코드와 회원아파트코드가 일치하지 않는다면,
$arr_str = explode("/", $Bconfig['config_add2']); // config_add2 에 저장된 문자를 슬러시로 구분해서
for($i = 0; $i < sizeof($arr_str); $i++) $arr_str[$i]; //$arr_str[0]..[1]..[2] 변수에 저장한다.
if (!$command or $command=='list'){ //글목록일때,
if ($arr_str[0]=='0' or $arr_str[1]=='0' or $arr_str[2]=='0') error_msg('죄송합니다! '.$apt_code[1].' 회원의 공간입니다. nn'.$you_Member[m_name].' 님은 목록을 열람할 권한이 없습니다.');
}else if ($command=='body'){ //본문일때
if ($arr_str[0]=='1' or $arr_str[1]=='1' or $arr_str[2]=='1') error_msg('죄송합니다! '.$apt_code[1].' 회원의 공간입니다. nn'.$you_Member[m_name].' 님은 본문을 열람할 권한이 없습니다.');
}else if ($command=='write'){ //글쓰기일때
if ($arr_str[0]=='2' or $arr_str[1]=='2' or $arr_str[2]=='2') error_msg('죄송합니다! '.$apt_code[1].' 회원의 공간입니다. nn'.$you_Member[m_name].' 님은 글작성 권한이 없습니다.');
}
}
}
}
?> 09.07.24 15:23

   

이름아이콘 청주산의

좋은 팁 감사 드립니다.
필요한 용도 많은 팁 같습니다. 09.07.24 21:11

   

이름아이콘 아이슬

멋쟁이냐님 테스트해보니정말좋습니다.
정말고생하셨습니다.~~
아파트홈...디자인..넘~ 좋아요..^^   09.07.25 02:44

   

0/3500 secret 파일첨부
FILE #1 .
FILE #2 .
FILE #3 .
FILE #4 .
FILE #5 .
FILE #6 .
FILE #7 .
FILE #8 .
FILE #9 .
FILE #10 .
번호 카테고리 제목 글쓴이 날짜 조회
58 스킨 매일 쓸곳이없어 여기다 씁니다 name icon angel 12-20 (일) 7601
57 스킨    건강 하시죠? name icon 청주산의 12-20 (일) 7403
56 스킨       ausangel.org 등록 되었습니다 name icon angel 12-20 (일) 8003
55 스킨          Nameserver name icon angel 12-21 (월) 7304
54 스킨             네임서버 name icon 청주산의 12-21 (월) 7797
53 스킨       반갑습니다 name icon angel 12-20 (일) 7090
52 기타 조선생님 오랜만입니다 아녕하세요 name icon angel 12-19 (토) 7969
51 활용팁 조원징님 잘더녀 오셧습니까? [2] name icon 호주포탈 01-21 (수) 17526
50 기타 조원장님 안녕하세요 [1] hojuportal 12-10 (수) 15809
49 기타 선생님.... [2]+1 name icon 뮤지아 11-14 (목) 21565
48 기타 테크노트 추가생성 입력란(checkbox) 버그 [1] name icon 이규하 12-08 (목) 24388
47 활용팁 본문에 이미지 & 사진설명(캡션) 넣기 [2]+1 예랑맨 10-25 (화) 22419
46 스킨 게시글 글등록시 관리자 네이트온으로 알림 [4]+2 name icon Terrorboy 10-04 (화) 24060
45 스킨 게시판 글등록시 관리자 마이피플로 알림 [3]+2 name icon Terrorboy 06-14 (화) 22035
44 테크노트 중복로그인 방지 [3] name icon 청주산의 05-15 (일) 11746
43 기타 선생님 계정 초기화 하고 싶어요 [6]+7 house 05-13 (금) 39
42 기타 선생님 설명입니다..^^ [1] name icon 늑대소냐 05-07 (토) 7
41 기타 소니 name icon 청주산의 04-30 (토) 10
40 활용팁 첨부 이미지 크기에 맞게 새창 띄우기 [1] 예랑맨 04-13 (수) 21755
39 기타 질문입니다.. [3] name icon 고길동 04-12 (화) 20792