제로보드 관련된 유용한 정보를 공유하는 곳입니다.
  • 웹미니 한줄 전광판 영역 입니다.
글 수 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/6f2/trackback
소중한 댓글 부탁드립니다.
추천수 10단위당 메달이 1개씩 노출되고, 추천수에 따라 배경색이 변하며, 일정수의 추천수를 받을시 BEST 아이콘이 붙게됩니다.
추천수에 따른 배경색 보기 본문으로 바로가기
  • 추천수 50개이상
  • 추천수 30개이상
  • 추천수 20개이상
  • 추천수 10개이상
  • 추천수 3개이상
닫기

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

List of Articles
번호 제목 글쓴이 날짜 추천 수sort 조회 수
98 hit best of best 제로보드 pl8 보안 취약점 패치하세요 [2] title: [ani]깜빡이는 표정빽짱구 2006-06-17 63 10263
97 hit best of best 쪽지창을 메신저처럼 하기 file [4] title: [ani]깜빡이는 표정빽짱구 2006-11-16 50 17805
96 best of best 최근게시물에 new 아이콘 달기 title: [ani]깜빡이는 표정빽짱구 2006-11-15 46 6822
95 best of best 최근게시물 클릭시 권한이 없을때 로그인페이지로 이동하기 [1] title: [ani]깜빡이는 표정빽짱구 2006-10-23 45 6449
94 best of best 레벨별로 오른쪽 마우스 금지하기 title: [ani]깜빡이는 표정빽짱구 2006-10-30 44 6248
93 best of best 최근게시물에 카테고리 뽑아오기 [1] title: [ani]깜빡이는 표정빽짱구 2006-11-15 42 7468
92 best of best 글읽기 권한 없을때 로그인 페이지만드는 방법 [1] title: [ani]깜빡이는 표정빽짱구 2006-10-23 38 6888
91 best of best 로그아웃시 원하는 페이지로 이동 시키기 title: [ani]깜빡이는 표정빽짱구 2006-10-24 35 6808
90 best of best 자동글 등록방지하기(광고글) file [1] title: [ani]깜빡이는 표정빽짱구 2006-09-16 35 7588
89 best of best 회원가입이나 수정시 그룹을 바꿀수 있게 하자 title: [ani]깜빡이는 표정빽짱구 2004-07-13 35 3440
88 best of best 아웃로그인 설치 [4] title: [ani]깜빡이는 표정빽짱구 2004-02-12 33 4176
87 best of best 생일자 로그인시 축하메세지 및 축하곡 띄우기 title: [ani]깜빡이는 표정빽짱구 2004-10-24 32 3589
86 best of best 회원들에게 개인 게시판 제공하기 title: [ani]깜빡이는 표정빽짱구 2004-02-24 30 4188
85 best of best 로그인창에 아이디 비밀번호란 이미지넣기 title: [ani]깜빡이는 표정빽짱구 2005-04-05 28 3766
84 best of best 로그아웃시 현재접속자 리스트에서 바로 안나오게 하기 title: [ani]깜빡이는 표정빽짱구 2006-10-06 27 4527
83 best of best 회원가입,정보수정시 글자제한하기. title: [ani]깜빡이는 표정빽짱구 2004-02-21 27 2677
82 best of best 제로보드 에러 페이지를 경고창으로 띄우기 title: [ani]깜빡이는 표정빽짱구 2006-10-26 26 5628
81 best of best 제로보드 서버이전 방법 title: [ani]깜빡이는 표정빽짱구 2004-07-12 25 8845
80 best of best 최근게시물에 오에카키 뽑기 [1] title: [ani]깜빡이는 표정빽짱구 2004-04-12 25 2630
79 best of best 게시판 제목 클릭 시 새창 뜨게하는 법 [4] 톡톡 2004-06-05 24 4212