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

15

조회 수 : 2632 신고 : 0

profile
작성자 : title: [ani]깜빡이는 표정빽짱구
포인트 : 56933 | 레벨 : 25
출처 :  
■■ outlogin.php 수정하기  ■■

outlogin.php파일을 수정하도록 하겠습니다.
전 outlogin.php파일을 여러번 수정하였으므로 정확한 행을 알지 못하니..
제가 제시해드린 글자를 찾아서..
제가 수정하라고 하는 부분을 수정하는 형태로 하시기 바랍니다.

outlogin.php파일을 보시면

$_outlogin_data = str_replace("[member_join]", "<a href=# onclick="window.open('".$_zb_url."member_join.php".$aUrl."','zbMemberJoin','width=560,height=590,toolbars=no,resizable=yes,scrollbars=yes')"><img src=$join_img border=0></a>",$_outlogin_data);

이라는 부분이 있습니다.
이부분은 회원가입을 클릭시 새창으로 뜨면서 회원가입 페이지인 member_join.php파일을
오픈하도록 되어 있습니다.

그 다음행에 추가를 하겠습니다.

$_outlogin_data = str_replace("[member_join2]", "<a href=".$_zb_url."emember_join.php".$aUrl."><img src=$join_img border=0></a>",$_outlogin_data);

이렇게 추가를 해줍니다. 보시면 아시겠지만 [member_join2]이라는 새로운 단축명령을 추가하고
그걸 클릭시 member_join.php가 아닌 가입약관이 보여질 페이지인
emember_join.php를 오픈하도록 하고 있습니다.
그리고 새창이 아닌 현재 창에서 열리도록 설정이 되어 있습니다.
여기서 자신이 현재창이 아닌 새창에서 가입약관이 보이도록 하실려면

$_outlogin_data = str_replace("[member_join2]", "<a href=# onclick="window.open('".$_zb_url."emember_join.php".$aUrl."','zbMemberJoin','width=560,height=590,toolbars=no,resizable=yes,scrollbars=yes')"><img src=$join_img border=0></a>",$_outlogin_data);

이렇게 해주시면 됩니다.

여기까지 하셨으면 outlogin.php파일을 다 수정하신겁니다.
이번엔 조금 간단하죠?



■■ 스킨 수정하기 ■■

이제 저 [member_join2]라는 단축명령이 실행이 되도록 해야 겠죠?
자신이 사용할 외부로그인 스킨 폴더의 login.html파일을 열어봅시다.

스킨에 따라 화면이 조금씩 다르니 다른건 수정하지 마시고
[member_join]이라고 써진걸 [member_join2] 이렇게만 바꿔주고 저장해줍니다.

스킨도 다 수정했네요.



■■ emember_join.php파일 만들기 ■■

그럼 가입약관이 나오는 emember_join.php라는 파일을 만들어 보겠습니다.

그럼 일단 가입이 이미 되어 있는지 등등을 확인하기 위해서
php로 체킹을 하는 구문을 넣어보도록 하겠습니다.

<?
// 라이브러리 함수 파일 인크루드
        include "lib.php";

// DB 연결
        if(!$connect) $connect=dbConn();

// 그룹 번호 체크
        if(!$group_no) {
                $tmpResult = mysql_fetch_array(mysql_query("select * from $group_table order by no limit 1"));
                $group_no = $tmpResult[no];
        }

// 멤버 정보 구해오기;;; 멤버가 있을때
        $member=member_info();

        if($mode=="admin"&&($member[is_admin]==1||($member[is_admin]==2&&$member[group_no]==$group_no))) $mode = "admin";
        else $mode = "";

        if($member[no]&&!$mode) Error("이미 가입이 되어 있습니다.");


// 게시판과 그룹설정에 따라서 회원 가입 설정
        if($id) {
                // 현재 게시판 설정 읽어 오기
                $setup=get_table_attrib($id);

                // 설정되지 않은 게시판일때 에러 표시
                if(!$setup[name]) Error("생성되지 않은 게시판입니다.<br><br>게시판을 생성후 사용하십시요");

                // 현재 게시판의 그룹의 설정 읽어 오기
                $group=group_info($setup[group_no]);
                if(!$group[use_join]&&!$mode) Error("현재 지정된 그룹은 추가 회원을 모집하지 않습니다");

        } else {

                if($group_name) $group=mysql_fetch_array(mysql_query("select * from $group_table where name='$group_name'"));
                elseif($group_no) $group=mysql_fetch_array(mysql_query("select * from $group_table where no='$group_no'"));
                if(!$group[no]) Error("지정된 그룹이 존재하지 않습니다");
                if(!$group[use_join]&&!$mode) Error("현재 지정된 그룹은 추가 회원을 모집하지 않습니다");

        }

        $check[1]="checked";

        if(!$referer) $referer=$HTTP_REFERER;

        $setup[header]="";
        $setup[footer]="";
        $setup[header_url]="";
        $setup[footer_url]="";
        $group[header]="";
        $group[footer]="";
        $group[header_url]="";
        $group[footer_url]="";
        $setup[skinname]="";

        head();

        echo "<div align=center><br>";
?>

여기까지 추가하시면 됩니다.
그 다음에


<script>
function check_submit() {
        if(!document.license.accept.checked) {
                alert("가입약관를 읽으시고 동의하시는 분만 회원가입을를 하실수 있습니다.nn가입약관을 모두 읽으신후 동의하시면 체크를 하신후 가입하기 버튼을 클릭하세요");
                return false;
        }
        return true;
}

function check_view() {
        if(document.license.accept.checked) {
                if(confirm("가입약관을 모두 읽으시고 동의를 하십니까?")) {
                        return true;
                } else {
                        return false;
                }
        }
}
</script>

라는 스크립트를 넣어줍니다.
이건 동의체크 박스를 클릭 안하면 나오는 경고문과 동의하겠냐고 다시 물어보는 창이 나오도록
하는 스크립트입니다.

그 다음에

  <table cellpadding=0 cellspacing=0 border=0 >
  <form name=license>
    <tr>
      <td><br>
      <strong>회원가입약관</strong></td>
    </tr>                    
    <tr>
      <td colspan=2>
        <div align=center><textarea cols=90 rows=15 readonly style=border-color:#DEDEDE;width:100% class=input4><? include "join_license.txt"; ?></textarea>
      </td>
    </tr>
    <tr>
      <td colspan=2><br><input type=checkbox name=accept value=1 onclick="return check_view()"> 위의 가입약관을 모두 읽었으며 동의합니다</td>
    </tr>
  </form>
    <tr align=right>
      <td align=center colspan=5>
       <br>
       <div align=center>
       <table border=0>
         <tr>
         <form method=post action=member_join.php onsubmit='return check_submit()'>
           <input type=hidden name=group_no value="<?=$group_no?>">
           <td align=center height=30><input type=image src=images/i_join.jpg border=0 align=absmiddle></td>
         </form>
         </tr>
       </table>
     </td>
   </tr>
</table>

이렇게 넣어줍니다.
전체를 테이블로 한번 감싸주었구요.
가장 상단에 회원가입약관이라고 제목이 나옵니다.
그 다음, textarea 태그를 이용해서 가입약관인 join_license.txt파일을 불러오도록 하였습니다.
그리고 읽었다는 표시로 체크 박스가 들어 있구요.
아래에 가입버튼이 있구요.

음.. 이부분에서 사용하실려는 분들 마음대로 수정을 하셔도 되지만.
<form></form> 태그와 <input>태그 부분등은 수정하시면 안됩니다.
정상작동을 하지 못하니 말이죠.

이 부분은 제로보드 인스톨 할때 install.php파일의 내용과 거의 같습니다.
그걸 기본으로 해서 만든것이니깐요.
여기까지 하셨으면 emember_join.php라는 파일로 저장하시고
제로보드 폴더에 업로드 해주세요.


다음은 emember_join.php파일의 최종 완성본입니다.

=======================================  emember_join.php  ======

<?
// 라이브러리 함수 파일 인크루드
        include "lib.php";

// DB 연결
        if(!$connect) $connect=dbConn();

// 그룹 번호 체크
        if(!$group_no) {
                $tmpResult = mysql_fetch_array(mysql_query("select * from $group_table order by no limit 1"));
                $group_no = $tmpResult[no];
        }

// 멤버 정보 구해오기;;; 멤버가 있을때
        $member=member_info();

        if($mode=="admin"&&($member[is_admin]==1||($member[is_admin]==2&&$member[group_no]==$group_no))) $mode = "admin";
        else $mode = "";

        if($member[no]&&!$mode) Error("이미 가입이 되어 있습니다.");


// 게시판과 그룹설정에 따라서 회원 가입 설정
        if($id) {
                // 현재 게시판 설정 읽어 오기
                $setup=get_table_attrib($id);

                // 설정되지 않은 게시판일때 에러 표시
                if(!$setup[name]) Error("생성되지 않은 게시판입니다.<br><br>게시판을 생성후 사용하십시요");

                // 현재 게시판의 그룹의 설정 읽어 오기
                $group=group_info($setup[group_no]);
                if(!$group[use_join]&&!$mode) Error("현재 지정된 그룹은 추가 회원을 모집하지 않습니다");

        } else {

                if($group_name) $group=mysql_fetch_array(mysql_query("select * from $group_table where name='$group_name'"));
                elseif($group_no) $group=mysql_fetch_array(mysql_query("select * from $group_table where no='$group_no'"));
                if(!$group[no]) Error("지정된 그룹이 존재하지 않습니다");
                if(!$group[use_join]&&!$mode) Error("현재 지정된 그룹은 추가 회원을 모집하지 않습니다");

        }

        $check[1]="checked";

        if(!$referer) $referer=$HTTP_REFERER;

        $setup[header]="";
        $setup[footer]="";
        $setup[header_url]="";
        $setup[footer_url]="";
        $group[header]="";
        $group[footer]="";
        $group[header_url]="";
        $group[footer_url]="";
        $setup[skinname]="";

        head();

        echo "<div align=center><br>";
?>
<script>
function check_submit() {
        if(!document.license.accept.checked) {
                alert("가입약관를 읽으시고 동의하시는 분만 회원가입을를 하실수 있습니다.nn가입약관을 모두 읽으신후 동의하시면 체크를 하신후 가입하기 버튼을 클릭하세요");
                return false;
        }
        return true;
}

function check_view() {
        if(document.license.accept.checked) {
                if(confirm("가입약관을 모두 읽으시고 동의를 하십니까?")) {
                        return true;
                } else {
                        return false;
                }
        }
}
</script>
  <table cellpadding=0 cellspacing=0 border=0 >
  <form name=license>
    <tr>
      <td><br>
      <strong>회원가입약관</strong></td>
    </tr>                    
    <tr>
      <td colspan=2>
        <div align=center><textarea cols=90 rows=15 readonly style=border-color:#DEDEDE;width:100% class=input4><? include "join_license.txt"; ?></textarea>
      </td>
    </tr>
    <tr>
      <td colspan=2><br><input type=checkbox name=accept value=1 onclick="return check_view()"> 위의 가입약관을 모두 읽었으며 동의합니다</td>
    </tr>
  </form>
    <tr align=right>
      <td align=center colspan=5>
       <br>
       <div align=center>
       <table border=0>
         <tr>
         <form method=post action=member_join.php onsubmit='return check_submit()'>
           <input type=hidden name=group_no value="<?=$group_no?>">
           <td align=center height=30><input type=image src=images/i_join.jpg border=0 align=absmiddle></td>
         </form>
         </tr>
       </table>
     </td>
   </tr>
</table>

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



■■ member_join.php파일 수정하기 ■■

음.. 지금 현재 제로보드의 원소스인 member_join.php 와 member_join_ok.php파일은
새창형에 맞게 되어 있기 때문에.. 어떤 에러메세지가 뜨거나 오류가 있을땐
창이 닫혀 버리게 되어 있습니다.

그러므로,
현재 창으로 회원가입을 받도록 하실분이면 다음에 가르쳐 드릴 부분을 반드시 수정하시기 바라며
새창으로 회원가입을 하실 분은 수정을 안하셔도 됩니다.

member_join.php파일을 보시면..

if($member[no]&&!$mode) Error("이미 가입이 되어 있습니다.","window.close");

에서 알수 있듯 window.close라는 명령이 들어가 있습니다.
그래서 어떤 에러나 오류가 있으면 창이 닫혀 버리죠.
이부분을 삭제 해줍니다.

if($member[no]&&!$mode) Error("이미 가입이 되어 있습니다.");

이렇게 말이죠.. 이렇게 창이 닫히도록 설정한부분이 3부분이 있습니다.
다 모두다 뒤의 window.close 부분을 삭제해 주세요.


###  이부분은 새창이든 현재창이든 같이 작업을 해주실 부분입니다.  ####

그 다음에
중간쯤에 보시면

<?
        if(file_exists("./join_license.txt")) {
?>

  if(!write.accept.checked) {
        alert("가입약관에 동의하셔야 회원가입을 할수 있습니다");
        return false;
  }

<?
        }
?>

이라는 부분이 있습니다.
이건 가입약관 페이지가 있으면  아래 스크립트가 실행되도록 한 부분이지만
우린 emember_join.php에서 가입약관을 보여주기 때문에 이부분을 없애도록 하겠습니다.
그냥 삭제해 주세요.

조금 더 내려가 보시면

  function check_accept() {
        return confirm("위의 가입 약관을 모두 보았으며, 동의하십니까?");
  }

라는 부분이 있습니다.
이부분도 삭제 처리 해주세요.

그리고 몇줄 더 내려가 보시면

<?
        if(file_exists("./join_license.txt")) {
                $f=fopen("join_license.txt",r);
                $join_license = fread($f,filesize("join_license.txt"));
                fclose($f);
?>
  <tr><td colspan="5" bgcolor="#EBD9D9" align="center"><img src="images/t.gif" width="10" height="3"></td></tr>
  <tr>
          <td colspan=2>
                  <br><div align=center><textarea cols=80 rows=6 readonly style=border-color:#d8b3b3;width:95% class=input><?=$join_license?></textarea></div>
        </td>
  </tr>
  <tr>
          <td colspan=2>   <input type=checkbox name=accept value=1 onclick="return check_accept()"> 위의 가입 약관에 동의합니다</td>
  </tr>
<?
        }
?>

이라는 부분이 있습니다. 이부분도 그냥 삭제해주세요.
이부분이 member_join.php에서 가입약관이 있을때 가입약관을 회원가입창에 보여주도록 되어 있는 부분입니다.

그리고 현재창으로 하실분은 가장 하단부분에

<img src=images/memo_close.gif border=0 onClick=window.close() style=cursor:hand>  

이라는 부분을

<img src=images/memo_close.gif border=0 onClick=history.go(-2) style=cursor:hand>  

이렇게 고쳐주시면 됩니다.

member_join.php파일을 다 수정하셨네요.



■■ member_join_ok.php파일 수정하기 ■■

그럼 member_join_ok.php파일을 열어봅시다

if($member[no]&&!$mode) Error("이미 가입이 되어 있습니다.","window.close");

라는 부분이 있습니다.
이부분도 역시 현재창으로 하실거면 뒤의 window.close부분을 삭제 해주시구요.
새창이라면 그대루 두세요.


그리고 가장 하단에 보시면

<script>
        alert("회원가입이 정상적으로 처리 되었습니다nn회원이 되신것을 진심으로 축하드립니다.");
        opener.window.history.go(0);
        window.close();
</script>

이라는 부분이 있을겁니다.
이부분을 새창으로 하실분은 그냥 두시면 되구요.
현재창으로 하실분은

<script>
        alert("회원가입이 정상적으로 처리 되었습니다nn회원이 되신것을 진심으로 축하드립니다.");
        history.go(-3);
</script>

이렇게 고쳐 주세요.

member_join_ok.php파일도 다 수정하셨습니다.

■■ 완성과 테스트 ■■

다 끝났습니다.
이제 외부로그인에서 회원가입을 해서 확인해보세요.
잘 되나요?

첨부파일로 emember_join.php파일을 올립니다.

출처: http://nezo.com 유용팁란 Dex 님의 글
profile 글쓴이 빽짱구

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

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

댓글 '1'

title: [ani]보라색 나비바비인형 (17337)

2004.09.09 15:11:26

으므~ 어렵네
List of Articles
번호 제목 글쓴이 날짜 추천 수 조회 수
18 제로보드 게시판배경 투명하게 하기 title: [ani]깜빡이는 표정빽짱구 2004-04-07 17 4362
17 best of best 회원가입시 나이제한하기 [1] title: [ani]깜빡이는 표정빽짱구 2004-03-07 22 2471
16 제로보드, 쪽지오면 자동쪽지함 띄우기 title: [ani]깜빡이는 표정빽짱구 2004-03-07 14 5089
15 best of best 회원가입시 가입약관 먼저보여주기 title: [ani]깜빡이는 표정빽짱구 2004-03-06 20 3198
14 best of best 회원들에게 개인 게시판 제공하기 title: [ani]깜빡이는 표정빽짱구 2004-02-24 30 4188
13 best of best 회원가입시/수정시 글자제한하기 title: [ani]깜빡이는 표정빽짱구 2004-02-24 23 2379
12 서브레이어 꾸미기 title: [ani]깜빡이는 표정빽짱구 2004-02-23 17 2864
11 개인정보수정시 이미지 네임 추가하기 title: [ani]깜빡이는 표정빽짱구 2004-02-23 15 2606
10 가입약관 넣기 다른방법 (가입약관 먼저 보여주기) [1] title: [ani]깜빡이는 표정빽짱구 2004-02-23 15 2632
9 가입약관 넣기 [2] title: [ani]깜빡이는 표정빽짱구 2004-02-23 16 2294
8 best of best 회원가입,정보수정시 글자제한하기. title: [ani]깜빡이는 표정빽짱구 2004-02-21 27 2677
7 아웃로그인 비밀번호찾기 지정해주기 [1] title: [ani]깜빡이는 표정빽짱구 2004-02-13 17 2421
6 best of best 아웃로그인 설치 [4] title: [ani]깜빡이는 표정빽짱구 2004-02-12 33 4176
5 가입아이디에 특수문자 포함금지 title: [ani]깜빡이는 표정빽짱구 2004-02-11 13 4286
4 회원탈퇴시 관리자에게 자동쪽지 오게하기 title: [ani]깜빡이는 표정빽짱구 2004-02-11 19 2569
3 가입되면 관리자에게 쪽지오게하기 title: [ani]깜빡이는 표정빽짱구 2004-02-11 10 2287
2 회원 가입시 자동 축하 메일 보내기 title: [ani]깜빡이는 표정빽짱구 2004-02-11 16 3550
1 최근게시물에서 공지사항이 젤위에 표시하게 할려면... [3] title: [ani]깜빡이는 표정빽짱구 2004-02-11 10 5053