제로보드 관련된 유용한 정보를 공유하는 곳입니다.
  • 웹미니 한줄 전광판 영역 입니다.
글 수 98

35

조회 수 : 3440 신고 : 0

profile
작성자 : title: [ani]깜빡이는 표정빽짱구
포인트 : 56933 | 레벨 : 25
출처 :  
select_group.gif

dasepo님께서 메일로 저의 팁에 대한 버그를 가르쳐 주셔서

확인하고 수정하였습니다.

원인은 기존에 member_join.php나 member_modify.php에서

이미 $group_data라는 변수를 사용했었는데..

제가 또 그걸 지정하고 사용해버림으로서 기존에

가지고 있던 $group_data의 값이 사라져 버렸습니다.

그래서 제가 지정한 $group_data라는 변수이름을 다른이름으로

바꿈으로써 해결이 가능합니다.

전 $group_data 대신에 $Group_data라는 이름으로 수정하였습니다.



이자리를 빌어 dasepo님께 감사의 말씀 올립니다.

===================================================

안녕하세요..

오랫만에 글을 남기는 DeX™입니다.



에띠안베레님의 말씀처럼 또

이번에도 어떤분의 요청으로 제작하는 팁입니다. ㅜ.,ㅜ;;

회원가입이나 정보수정에서 사용자 마음데로 그룹을 이동시키려 합니다.


전체적인 구조는 위의 이미지처럼..

회원가입이나 회원 정보수정에서 셀렉트박스로 자신이 원하는 그룹으로 가입이 되도록

만들어보려 합니다.


자 그럼 이제 시작하도록 하겠습니다.



예제사이트 http://dex.jwcafe.net/board/member_join.php?group_no=1

어디까지나 위사이트는 테스트용 계정이므로 마음데로 하셔도 상관 없습니다.

            




■■ member_join.php 수정하기  ■■

음.. member_join.php파일을 에디터로 오픈하신후에..

180행쯤에 보시면

<input type=hidden name=group_no value="<?=$group[no]?>">

이라는 구문이 있을겁니다.
이부분을 과감하게 삭제해주세요.
이부분은 외부로그인이나 게시판의 회원가입버튼을 클릭시
해당 그룹넘버로 가입을 받을수 있도록 값을 넣는 부분이지만..
우리는 가입자가 직접 그룹을 선택할 수 있도록 할것이므로..
삭제처리토록 하겠습니다.

그 다음에...
220행쯤에 보시면...


  <tr align=right height=28>
     <td style=font-family:Tahoma;font-size:8pt;><b>Name </td>
     <td align=left> <input type=text name=name size=20 maxlength=20 value="<?=$member[name]?>" style=border-color:#d8b3b3 class=input></td>
  </tr>
        <tr>
          <td colspan="5" bgcolor="#EBD9D9" align="center"><img src="images/t.gif" width="10" height="1"></td>
        </tr>


이라는 부분이 있습니다.
이부분은 이름을 입력받는 부분입니다.
그 아래에..
다음내용을 추가해 주시죠..

        
  <tr align=right height=28>
     <td style=font-family:Tahoma;font-size:8pt;><b>School </td>
     <td align=left>
       <?
                     $Group_result=mysql_query("select * from $group_table order by no");
              echo "<select name=group_no size='1'><option value=''>- 해당 학교를 선택해 주세요 -</option>";
              while($Group_data=mysql_fetch_array($Group_result)) {
                    if ($Group_data[no]==$member[group_no]) {
                      echo "<option value='$Group_data[no]' selected>$Group_data[name]</option>";
                      } else {
                      echo "<option value='$Group_data[no]'>$Group_data[name]</option>";
                      }
              }        
              echo "</select>";
      ?>        
     </td>
  </tr>
        <tr>
          <td colspan="5" bgcolor="#EBD9D9" align="center"><img src="images/t.gif" width="10" height="1"></td>
        </tr>  


이부분을 설명하자면...
디비에 그룹테이블에 접속해서
자동으로 그룹명을 불러오는 부분입니다.

자 이렇게만 하시면 member_join.php파일을 다 수정하신겁니다.
이제 회원가입할때는 그룹을 사용자가 선택할수 있습니다.




■■ member_modify.php 수정하기 ■■

이제 회원정보수정에서 그룹을 바꿔보도록 하죠..
member_modify.php을 에디터에서 오픈하셔서
member_join.php에서 수정하신것처럼..


  <tr height=28 align=right>
     <td style=font-family:Tahoma;font-size:8pt;><b>Name </td>
     <td align=left> <input type=text name=name size=20 maxlength=20 value="<?=$member[name]?>" style=border-color:#d8b3b3 class=input></td>
  </tr>        <tr>
          <td colspan="5" bgcolor="#EBD9D9" align="center"><img src="images/t.gif" width="10" height="1"></td>
        </tr>


라는 부분을 찾으신후에..
그 다음에 바로


<? if(!($member[no]&&$member[is_admin]<3&&$member[is_admin]>=1)||($member[no]&&$member[board_name])) { ?>
  <tr align=right height=28>
     <td style=font-family:Tahoma;font-size:8pt;><b>School </td>
     <td align=left>
       <?
                     $Group_result=mysql_query("select * from $group_table order by no");
              echo "<select name=group_no size='1'><option value=''>- 해당 학교를 선택해 주세요 -</option>";
              while($Group_data=mysql_fetch_array($Group_result)) {
                    if ($Group_data[no]==$member[group_no]) {
                      echo "<option value='$Group_data[no]' selected>$Group_data[name]</option>";
                      } else {
                      echo "<option value='$Group_data[no]'>$Group_data[name]</option>";
                      }
              }        
              echo "</select>";
      ?>        
     </td>
  </tr>
        <tr>
          <td colspan="5" bgcolor="#EBD9D9" align="center"><img src="images/t.gif" width="10" height="1"></td>
        </tr>        
<? } ?>      


이렇게 추가를 해주세요.
아까 설명한것과 같이 그룹테이블에 접속해서 그룹명을 가져오는 부분입니다.
단!! 관리자나 그룹관리자 게시판관리자는 그룹을 변경하면 안되겠죠?
그래서 각 관리자들은 변경하는것을 안보이도록 설정을 한것이구요.

그럼 member_modify.php파일을 다 수정하셨으니..
member_modify_ok.php파일을 수정해 볼까요?




■■ member_modify_ok.php 수정하기 ■■

이제 member_modify_ok.php파일을 수정하겠습니다.

먼저 제로보드의 형태는
일단 회원가입을 하게 되면 디비의 멤버테이블에 사용자를 추가해주게 되어 있습니다.
그다음에 그룹테이블의 해당 그룹쪽의 멤버넘버필드에 값을 1을 더해주게되어
멤버수를 더하게 되도록 되어 있습니다.

그러므로 해당회원의 그룹이 변경이 되면..
디비의 멤버테이블에서 회원의 그룹넘버를 변경시켜주고
기존의 그룹테이블의 그룹쪽엔 1을 빼주고 변경된 그룹쪽엔 1을 더해줘야 합니다.

member_modify_ok.php파일을 에디터로 오픈하신후에
10행쯤에..


        $member=member_info();
        if(!$member[no]) Error("회원정보가 존재하지 않습니다");


이라는부분을 찾으세요.
그 다음줄에

        if(!($member[no]&&$member[is_admin]<3&&$member[is_admin]>=1)||($member[no]&&$member[board_name])) {
        if ($member[group_no]!=$group_no) {
        @mysql_query("update $group_table set member_num=member_num-1 where no='$member[group_no]'") or error(mysql_error());      
        @mysql_query("update $group_table set member_num=member_num+1 where no='$group_no'") or error(mysql_error());      
        @mysql_query("update $member_table set group_no=$group_no where no=$member[no]") or error(mysql_error());  
         }
        }

이렇게 추가를 해줍니다.
이부분을 설명하자면..

만약 member_modify.php에서 받은 group_no값과 현재 디비에 저장된  회원의 그룹넘버값이 틀리면..
즉..
그룹을 변경하였으면..
기존의 그룹넘버값에서는 1을 빼주고 새롭게 바뀔 그룹넘버값에 1을 더해줘서
그룹의 멤버수를 맞게 수정을 하고
멤버테이블에서 해당멤버의 그룹넘버값을 새롭게 바뀌는 그룹넘버로 바뀌도록 되어 있습니다.
역시 관리자들은 해당사항이 없도록 되어 있구요..

이제 다 수정을 하셨습니다.
              
        




■■ 완성과 테스트 ■■

다 끝났습니다.
이제 회원가입이나 수정을 해보시면 변경이 잘될겁니다.

출처: 제로보드 유용팁란 Dex님의 글
관련링크 : http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=2&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=그룹&select_arrange=headnum&desc=asc&no=3971
profile 글쓴이 빽짱구

단점이 없는 사람은 장점도 거의 없다 - 에이브러햄 링컨

엮인글 :
https://web.webmini.net/zb4/17388/9ce/trackback
소중한 댓글 부탁드립니다.
추천수 10단위당 메달이 1개씩 노출되고, 추천수에 따라 배경색이 변하며, 일정수의 추천수를 받을시 BEST 아이콘이 붙게됩니다.
추천수에 따른 배경색 보기 본문으로 바로가기
  • 추천수 50개이상
  • 추천수 30개이상
  • 추천수 20개이상
  • 추천수 10개이상
  • 추천수 3개이상
닫기

첫번째 댓글을 남겨주세요!

List of Articles
번호 제목 글쓴이 날짜 추천 수 조회 수
58 글 내용 부분에 글쓴이 사진넣기 title: [ani]깜빡이는 표정빽짱구 2004-10-24 16 2470
57 오늘 올라온 게시물 갯수 등... title: [ani]깜빡이는 표정빽짱구 2004-10-24 15 2210
56 제로보드 코멘트도 수정할 수 있게... [7] 맑은숲 2004-10-24 18 4298
55 best of best 글 작성 후 내용 자동으로 클립되기 [3] title: [ani]깜빡이는 표정빽짱구 2004-10-18 21 3248
54 제로보드에 글이 올라오면 실시간으로 알려주는 프로그램 title: [ani]깜빡이는 표정빽짱구 2004-10-18 19 3138
53 best of best 내가 올린글에 달린 댓글(코멘트)를 원하는 만큼 모아보자 title: [ani]깜빡이는 표정빽짱구 2004-10-18 23 3316
52 best of best 현제접속자 title: [ani]깜빡이는 표정빽짱구 2004-08-14 20 2783
51 검색결과 없으면 안내문구 보여주기 [1] title: [ani]깜빡이는 표정빽짱구 2004-08-04 18 2461
50 게시물 이동후 삭재 안되는 문제해결 title: [ani]깜빡이는 표정빽짱구 2004-08-04 16 2490
49 best of best 회원가입이나 수정시 그룹을 바꿀수 있게 하자 title: [ani]깜빡이는 표정빽짱구 2004-07-13 35 3440
48 best of best 제로보드 서버이전 방법 title: [ani]깜빡이는 표정빽짱구 2004-07-12 25 8845
47 best of best 일반게시물에 최근 코멘트 달리면 코멘트숫자 색깔 변하게 하기 [1] title: [ani]깜빡이는 표정빽짱구 2004-07-12 22 2589
46 특정레벨이 로그인하면 메세지 띄우기 title: [ani]깜빡이는 표정빽짱구 2004-07-12 16 2516
45 코멘트 달린글 삭제 못하게 하기 title: [ani]깜빡이는 표정빽짱구 2004-07-12 15 2793
44 [외부로그인] 안에 레벨아이콘 넣기 [1] title: [ani]깜빡이는 표정빽짱구 2004-07-12 16 3495
43 게시판 생성시 오류메세지 title: [ani]깜빡이는 표정빽짱구 2004-07-08 14 3936
42 best of best 회원이 적은 글에 코멘트달면 해당회원에게 쪽지로 알려주기 title: [ani]깜빡이는 표정빽짱구 2004-07-05 23 2229
41 best of best 게시판 제목 클릭 시 새창 뜨게하는 법 [4] 톡톡 2004-06-05 24 4212
40 쪽지보낼때 경고메세지 띄우기 title: [ani]깜빡이는 표정빽짱구 2004-05-29 13 2233
39 서브 레이어에서 홈페이지 링크에 %2f 가 붙는 문제 title: [ani]깜빡이는 표정빽짱구 2004-05-28 14 2404