웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
NZEO 이메일 인증 따라하기 [또 수정 --;]
2003.02.22 04:09
저번에는 너무 어렵게 한것 같아서 이번에는 차근차근 해 나갈것입니다;;
------------------------------------------------------------------
우선 첨부파일을 받아서 풀면 나오는 파일을 제로보드 폴더에 올리세요.
그리고, 두개의 파일 안에 보면
// 제로보드 설치 url
$zb_path="제로보드 설치 경로";
이 부분을 찾아 반드시 수정해주세요.
이제 파일 수정입니다. 파란색은 원문, 빨간색은 추가/수정부분입니다.
member_join_ok.php 118번째줄 부근부터
-----------------------
if(!$mode) {
$member_data=mysql_fetch_array(mysql_query("select * from $member_table where user_id='$user_id' and password=password('$password')"));
// 인증 부분
// 웹마스터 E-mail
$_from = $_zbDefaultSetup[email];
// 사이트 이름
$_sitename = $_zbDefaultSetup[sitename];
// 제로보드 설치 url
$zb_path = "제로보드 경로";
$temp=substr(base64_encode(time()),1,10);
$mode="join";
mysql_query("update $member_table set level='10',office_address=password('$temp'),office_tel='$mode' where no='$member_data[no]'",$connect) or Error("암호 입력 도중 오류가 발생하였습니다.");
$to=$member_data[email];
$name=$member_data[name];
$link="< a href='".$zb_path."activate.php?mode=".$mode."&userid=".$user_id."&key=".$temp."'>".$zb_path."activate.php?mode=".$mode."&userid=".$user_id."&key=".$temp."< /a>";
$subject="[$_sitename] 회원가입 인증 메일입니다";
$comment="안녕하세요.n"."$_sitename 입니다.n"."$_sitename 에 가입해 주셔서 갑사합니다.n"."가입 인증을 확인하시려면 아래 주소를 클릭하여 주세요.n만일 링크 표시가 되지 않는다면, 아래 주소를 복사하셔서 웹브라우저에서 실행하시면 됩니다.nn".$link;
if(!zb_sendmail(1, $to, $name, $_from, "", $subject, $comment)) Error("메일 발송 에러");
?>
<script>
alert("지금 <?=$to?>로 인증 메일을 보냈습니다.nn메일을 확인하시고 인증받으시기 바랍니다.");
opener.window.history.go(0);
window.close();
</script>
<?
exit;
}
// 4.0x 용 세션 처리
$zb_logged_no = $member_data[no];
$zb_logged_time = time();
$zb_logged_ip = $REMOTE_ADDR;
$zb_last_connect_check = '0';
session_register("zb_logged_no");
session_register("zb_logged_time");
session_register("zb_logged_ip");
session_register("zb_last_connect_check");
mysql_close($connect);
?>
<script>
alert("회원가입이 정상적으로 이루어졌습니다.");
opener.window.history.go(0);
window.close();
</script>
<!-- 여기가 파일의 끝입니다 -->
-----------------------
member_modify_ok.php 22번째줄 부근부터
-----------------------
$check=mysql_fetch_array(mysql_query("select count(*) from $member_table where email='+ '$email' and no <> ".$member[no],$connect));
if($check[0]>0) Error("이미 등록되어 있는 E-Mail입니다");
// 여기부터 인증부분
$check=mysql_fetch_array(mysql_query("select no,email from $member_table where no='+ '$no'",$connect));
if($check[email]!=$email) {
// 웹마스터 E-mail
$_from = $_zbDefaultSetup[email];
// 사이트 이름
$_sitename = $_zbDefaultSetup[sitename];
// 제로보드 설치 url
$zb_path = "제로보드 경로";
$temp=substr(base64_encode(time()),1,10);
$mode="join";
mysql_query("update $member_table set level='10',office_address=password('$temp'),office_tel='$mode' where no='$member[no]'",$connect) or Error("암호 입력 도중 오류가 발생하였습니다.");
$to=$email;
$link="< a href='".$zb_path."activate.php?mode=".$mode."&userid=".$member[user_id]."&key=".$temp."'>".$zb_path."activate.php?mode=".$mode."&userid=".$member[user_id]."&key=".$temp."< /a>";
$subject="[$_sitename] 정보수정 인증 메일입니다";
$comment="안녕하세요.n"."$_sitename 입니다.n"."$_sitename 에서 메일주소를 변경하였기에 발송되는 인증메일입니다.n"."인증을 확인하시려면 아래 링크를 클릭하여 주세요.n만일 링크표시가 되지 않는다면, 아래 주소를 복사하셔서 웹브라우저에서 실행하여 주세요.nn".$link;
if(!zb_sendmail(1, $to, $name, $_from, "", $subject, $comment)) Error("메일 발송 에러");
?>
<script>
alert("지금 <?=$to?>로 인증메일을 발송하였습니다.nn지금 메일을 확인하여 인증받으시기 바랍니다.");
opener.window.history.go(0);
window.close();
</script>
<?
}
// 인증부분 끝
.
.
.
[중략]
.
.
if (!$mode) {
?>
<script>
alert("회원님의 정보수정이 제대로 처리되었습니다.");
opener.window.history.go(0);
window.close();
</script>
<? } ?>
<!-- 여기가 이 파일의 끝입니다 -->
-----------------------
member_out.php 10번째줄
-----------------------
// 회원 정보를 얻어옴
$member=member_info();
$group_no = $member[group_no];
// 멤버 정보 삭제 -- 이부분부터 인증을 위해 주석처리
// @mysql_query("delete from $member_table where no='$member[no]'") or error(mysql_error());
// 쪽지 테이블에서 멤버 정보 삭제
// @mysql_query("delete from $get_memo_table where member_no='$member[no]'") or error(mysql_error());
// @mysql_query("delete from $send_memo_table where member_no='$member[no]'") or error(mysql_error());
// 각종 게시판에서 현재 탈퇴한 멤버의 모든 정보를 삭제 (부하 문제로 인해서 주석 처리)
/*
$result=mysql_query("select name from $admin_table");
while($data=mysql_fetch_array($result)) {
// 게시판 테이블에서 삭제
@mysql_query("update $t_board"."_$data[name] set ismember='0', password=password('".time()."') where ismember='$member[no]'") or error(mysql_error());
// 코멘트 테이블에서 삭제
@mysql_query("update $t_comment"."_$data[name] set ismember='0', password=password('".time()."') where ismember='$member[no]'") or error(mysql_error());
}
*/
// 그룹테이블에서 회원수 -1
// @mysql_query("update $group_table set member_num=member_num-1 where no = '$group_no'") or error(mysql_error());
// 여기까지 주석처리
// 웹마스터 E-mail
$_from = $_zbDefaultSetup[email];
// 사이트 이름
$_sitename = $_zbDefaultSetup[sitename];
// 제로보드 설치 url
$zb_path = "제로보드 경로";
$temp=substr(base64_encode(time()),1,10);
$mode="out";
mysql_query("update $member_table set level='10',office_address=password('$temp'),office_tel='$mode' where no='$member[no]'",$connect) or Error("암호 입력 도중 오류가 발생하였습니다.");
$name=$member[name];
$to=$member[email];
$link="< a href='".$zb_path."activate.php?mode=".$mode."&userid=".$member[user_id]."&key=".$temp."'>".$zb_path."activate.php?mode=".$mode."&userid=".$member[user_id]."&key=".$temp."< /a>";
$subject="[$_sitename] 회원탈퇴 인증 메일입니다";
$comment="안녕하세요.n"."$_sitename 입니다.n"."$_sitename 에서 탈퇴요청을 하였기에 발송되는 인증메일입니다.n"."인증을 확인하시려면 아래 링크를 클릭하여 주세요.n만일 링크표시가 되지 않는다면, 아래 주소를 복사하셔서 웹브라우저에서 실행하여 주세요.nn".$link;
if(!zb_sendmail(1, $to, $name, $_from, "", $subject, $comment)) Error("메일 발송 에러");
// 로그아웃 시킴
destroyZBSessionID($member[no]);
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//$HTTP_SESSION_VARS["zb_logged_no"]='';
//$HTTP_SESSION_VARS["zb_logged_id"]='';
//$HTTP_SESSION_VARS["zb_logged_time"]='';
//$HTTP_SESSION_VARS["zb_logged_ip"]='';
//$HTTP_SESSION_VARS["zb_secret"]='';
//$HTTP_SESSION_VARS["zb_last_connect_check"] = '0';
// 4.0x 용 세션 처리
$zb_logged_no='';
$zb_logged_time='';
$zb_logged_ip='';
$zb_secret='';
$zb_last_connect_check = '0';
session_register("zb_logged_no");
session_register("zb_logged_time");
session_register("zb_logged_ip");
session_register("zb_secret");
session_register("zb_last_connect_check");
mysql_close($connect);
?>
<script>
alert("인증메일이 <?=$to?>로 발송되었습니다.nn메일을 확인하셔야만 완전한 탈퇴가 이루어집니다.");
opener.window.history.go(0);
window.close();
</script>
<!-- 여기가 이 파일의 끝입니다 -->
----------------------------------
이제 로그인을 위한 login_check.php 수정입니다. 20번째줄 부터
----------------------------------
// 회원로그인이 성공하였을 경우 세션을 생성하고 페이지를 이동함
if($member_data[no]) {
// 인증이 안되어 있으면 못들어가요~
if($member_data[office_tel]=="join") error("메일 인증이 되지 않은 ID입니다
아이디 재인증을 하시기 바랍니다
< a href=# onclick="window.open('activate_form.php?mode=join','lost_id','width=380,height=200,toolbars=no,autoscrollbars=no')"><u>☞ 아이디 재인증</u>< /a>");
if($member_data[office_tel]=="out") error("인증받으셔야만 회원탈퇴가 가능합니다.
인증 메일을 다시 받으시려면 아래 링크를 클릭하세요.
< a href=# onclick="window.open('activate_form.php?mode=out','lost_id','width=380,height=200,toolbars=no,autoscrollbars=no')"><u>☞ 아이디 재인증</u>< /a>");
// 여기까지 인증 부분
---------------------------------
이 외에도 member_modify.php에서 탈퇴시 메세지창을 수정하여야 하는데 이것은 여러분에게 맡기겠습니다.
참, setup.php도 확인해두시구요.
현재 제 홈에 적용해두었습니다.
아래는 적용 후 화면입니다.
------------------------------------------------------------------
우선 첨부파일을 받아서 풀면 나오는 파일을 제로보드 폴더에 올리세요.
그리고, 두개의 파일 안에 보면
// 제로보드 설치 url
$zb_path="제로보드 설치 경로";
이 부분을 찾아 반드시 수정해주세요.
이제 파일 수정입니다. 파란색은 원문, 빨간색은 추가/수정부분입니다.
member_join_ok.php 118번째줄 부근부터
-----------------------
if(!$mode) {
$member_data=mysql_fetch_array(mysql_query("select * from $member_table where user_id='$user_id' and password=password('$password')"));
// 인증 부분
// 웹마스터 E-mail
$_from = $_zbDefaultSetup[email];
// 사이트 이름
$_sitename = $_zbDefaultSetup[sitename];
// 제로보드 설치 url
$zb_path = "제로보드 경로";
$temp=substr(base64_encode(time()),1,10);
$mode="join";
mysql_query("update $member_table set level='10',office_address=password('$temp'),office_tel='$mode' where no='$member_data[no]'",$connect) or Error("암호 입력 도중 오류가 발생하였습니다.");
$to=$member_data[email];
$name=$member_data[name];
$link="< a href='".$zb_path."activate.php?mode=".$mode."&userid=".$user_id."&key=".$temp."'>".$zb_path."activate.php?mode=".$mode."&userid=".$user_id."&key=".$temp."< /a>";
$subject="[$_sitename] 회원가입 인증 메일입니다";
$comment="안녕하세요.n"."$_sitename 입니다.n"."$_sitename 에 가입해 주셔서 갑사합니다.n"."가입 인증을 확인하시려면 아래 주소를 클릭하여 주세요.n만일 링크 표시가 되지 않는다면, 아래 주소를 복사하셔서 웹브라우저에서 실행하시면 됩니다.nn".$link;
if(!zb_sendmail(1, $to, $name, $_from, "", $subject, $comment)) Error("메일 발송 에러");
?>
<script>
alert("지금 <?=$to?>로 인증 메일을 보냈습니다.nn메일을 확인하시고 인증받으시기 바랍니다.");
opener.window.history.go(0);
window.close();
</script>
<?
exit;
}
// 4.0x 용 세션 처리
$zb_logged_no = $member_data[no];
$zb_logged_time = time();
$zb_logged_ip = $REMOTE_ADDR;
$zb_last_connect_check = '0';
session_register("zb_logged_no");
session_register("zb_logged_time");
session_register("zb_logged_ip");
session_register("zb_last_connect_check");
mysql_close($connect);
?>
<script>
alert("회원가입이 정상적으로 이루어졌습니다.");
opener.window.history.go(0);
window.close();
</script>
<!-- 여기가 파일의 끝입니다 -->
-----------------------
member_modify_ok.php 22번째줄 부근부터
-----------------------
$check=mysql_fetch_array(mysql_query("select count(*) from $member_table where email='+ '$email' and no <> ".$member[no],$connect));
if($check[0]>0) Error("이미 등록되어 있는 E-Mail입니다");
// 여기부터 인증부분
$check=mysql_fetch_array(mysql_query("select no,email from $member_table where no='+ '$no'",$connect));
if($check[email]!=$email) {
// 웹마스터 E-mail
$_from = $_zbDefaultSetup[email];
// 사이트 이름
$_sitename = $_zbDefaultSetup[sitename];
// 제로보드 설치 url
$zb_path = "제로보드 경로";
$temp=substr(base64_encode(time()),1,10);
$mode="join";
mysql_query("update $member_table set level='10',office_address=password('$temp'),office_tel='$mode' where no='$member[no]'",$connect) or Error("암호 입력 도중 오류가 발생하였습니다.");
$to=$email;
$link="< a href='".$zb_path."activate.php?mode=".$mode."&userid=".$member[user_id]."&key=".$temp."'>".$zb_path."activate.php?mode=".$mode."&userid=".$member[user_id]."&key=".$temp."< /a>";
$subject="[$_sitename] 정보수정 인증 메일입니다";
$comment="안녕하세요.n"."$_sitename 입니다.n"."$_sitename 에서 메일주소를 변경하였기에 발송되는 인증메일입니다.n"."인증을 확인하시려면 아래 링크를 클릭하여 주세요.n만일 링크표시가 되지 않는다면, 아래 주소를 복사하셔서 웹브라우저에서 실행하여 주세요.nn".$link;
if(!zb_sendmail(1, $to, $name, $_from, "", $subject, $comment)) Error("메일 발송 에러");
?>
<script>
alert("지금 <?=$to?>로 인증메일을 발송하였습니다.nn지금 메일을 확인하여 인증받으시기 바랍니다.");
opener.window.history.go(0);
window.close();
</script>
<?
}
// 인증부분 끝
.
.
.
[중략]
.
.
if (!$mode) {
?>
<script>
alert("회원님의 정보수정이 제대로 처리되었습니다.");
opener.window.history.go(0);
window.close();
</script>
<? } ?>
<!-- 여기가 이 파일의 끝입니다 -->
-----------------------
member_out.php 10번째줄
-----------------------
// 회원 정보를 얻어옴
$member=member_info();
$group_no = $member[group_no];
// 멤버 정보 삭제 -- 이부분부터 인증을 위해 주석처리
// @mysql_query("delete from $member_table where no='$member[no]'") or error(mysql_error());
// 쪽지 테이블에서 멤버 정보 삭제
// @mysql_query("delete from $get_memo_table where member_no='$member[no]'") or error(mysql_error());
// @mysql_query("delete from $send_memo_table where member_no='$member[no]'") or error(mysql_error());
// 각종 게시판에서 현재 탈퇴한 멤버의 모든 정보를 삭제 (부하 문제로 인해서 주석 처리)
/*
$result=mysql_query("select name from $admin_table");
while($data=mysql_fetch_array($result)) {
// 게시판 테이블에서 삭제
@mysql_query("update $t_board"."_$data[name] set ismember='0', password=password('".time()."') where ismember='$member[no]'") or error(mysql_error());
// 코멘트 테이블에서 삭제
@mysql_query("update $t_comment"."_$data[name] set ismember='0', password=password('".time()."') where ismember='$member[no]'") or error(mysql_error());
}
*/
// 그룹테이블에서 회원수 -1
// @mysql_query("update $group_table set member_num=member_num-1 where no = '$group_no'") or error(mysql_error());
// 여기까지 주석처리
// 웹마스터 E-mail
$_from = $_zbDefaultSetup[email];
// 사이트 이름
$_sitename = $_zbDefaultSetup[sitename];
// 제로보드 설치 url
$zb_path = "제로보드 경로";
$temp=substr(base64_encode(time()),1,10);
$mode="out";
mysql_query("update $member_table set level='10',office_address=password('$temp'),office_tel='$mode' where no='$member[no]'",$connect) or Error("암호 입력 도중 오류가 발생하였습니다.");
$name=$member[name];
$to=$member[email];
$link="< a href='".$zb_path."activate.php?mode=".$mode."&userid=".$member[user_id]."&key=".$temp."'>".$zb_path."activate.php?mode=".$mode."&userid=".$member[user_id]."&key=".$temp."< /a>";
$subject="[$_sitename] 회원탈퇴 인증 메일입니다";
$comment="안녕하세요.n"."$_sitename 입니다.n"."$_sitename 에서 탈퇴요청을 하였기에 발송되는 인증메일입니다.n"."인증을 확인하시려면 아래 링크를 클릭하여 주세요.n만일 링크표시가 되지 않는다면, 아래 주소를 복사하셔서 웹브라우저에서 실행하여 주세요.nn".$link;
if(!zb_sendmail(1, $to, $name, $_from, "", $subject, $comment)) Error("메일 발송 에러");
// 로그아웃 시킴
destroyZBSessionID($member[no]);
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//$HTTP_SESSION_VARS["zb_logged_no"]='';
//$HTTP_SESSION_VARS["zb_logged_id"]='';
//$HTTP_SESSION_VARS["zb_logged_time"]='';
//$HTTP_SESSION_VARS["zb_logged_ip"]='';
//$HTTP_SESSION_VARS["zb_secret"]='';
//$HTTP_SESSION_VARS["zb_last_connect_check"] = '0';
// 4.0x 용 세션 처리
$zb_logged_no='';
$zb_logged_time='';
$zb_logged_ip='';
$zb_secret='';
$zb_last_connect_check = '0';
session_register("zb_logged_no");
session_register("zb_logged_time");
session_register("zb_logged_ip");
session_register("zb_secret");
session_register("zb_last_connect_check");
mysql_close($connect);
?>
<script>
alert("인증메일이 <?=$to?>로 발송되었습니다.nn메일을 확인하셔야만 완전한 탈퇴가 이루어집니다.");
opener.window.history.go(0);
window.close();
</script>
<!-- 여기가 이 파일의 끝입니다 -->
----------------------------------
이제 로그인을 위한 login_check.php 수정입니다. 20번째줄 부터
----------------------------------
// 회원로그인이 성공하였을 경우 세션을 생성하고 페이지를 이동함
if($member_data[no]) {
// 인증이 안되어 있으면 못들어가요~
if($member_data[office_tel]=="join") error("메일 인증이 되지 않은 ID입니다
아이디 재인증을 하시기 바랍니다
< a href=# onclick="window.open('activate_form.php?mode=join','lost_id','width=380,height=200,toolbars=no,autoscrollbars=no')"><u>☞ 아이디 재인증</u>< /a>");
if($member_data[office_tel]=="out") error("인증받으셔야만 회원탈퇴가 가능합니다.
인증 메일을 다시 받으시려면 아래 링크를 클릭하세요.
< a href=# onclick="window.open('activate_form.php?mode=out','lost_id','width=380,height=200,toolbars=no,autoscrollbars=no')"><u>☞ 아이디 재인증</u>< /a>");
// 여기까지 인증 부분
---------------------------------
이 외에도 member_modify.php에서 탈퇴시 메세지창을 수정하여야 하는데 이것은 여러분에게 맡기겠습니다.
참, setup.php도 확인해두시구요.
현재 제 홈에 적용해두었습니다.
아래는 적용 후 화면입니다.
댓글 44
제목 | 글쓴이 | 날짜 |
---|---|---|
동일서버내 페이지에서 로그인정보 활용하기... [4] | 수로 | 2008.09.06 |
게시판 에디터 폰트 글자(글씨)크기 변경하는 법 | 씨에씨에 | 2008.09.12 |
주소록 구현 (외부 페이지) [17] | CSLab | 2008.09.15 |
"권한이 없습니다." Alert 창 대신 로그인 화면으로 이동시키기 [4] | Slur | 2008.09.22 |
VPN 환경에서 제로보드 [4] | superion | 2008.09.26 |
[권한이 없습니다] 권한에 따른 다른 메시지 출력하기 [10] [1] | 반도체맨 | 2008.10.03 |
제로보드XE가입 -> 트랙자동가입 기능 | 개돌 | 2008.10.14 |
제로보드(zbxe) 설치 후 로그인 안되는 문제. [3] | sophistlv.myid.net | 2008.10.15 |
개인 웹서버 백업 및 게시물 등록 날짜 수정 방법 [10] | eunbini | 2008.10.24 |
카페24 계정 사용 중에 제로보드XE 로그인 오류가 날 때 [1] | vltm | 2008.10.24 |
플래시 BGM 음악 제로보드에 넣는 방법 | 푸른커튼 | 2008.10.29 |
외국에서 접속시 로그인 않되는문제 [1] | minams | 2008.10.30 |
FTP프로그램을 이용하지 않고 업로드 하기 [8] | 싱하형 | 2008.10.31 |
라이트박스(facebox) 적용하기 [7] | 퍼플F | 2008.11.02 |
일반 페이지에 로그인(세션) 정보 활용하기 [13] | noirzo | 2008.11.07 |
1.1.0 업데이트 로그인문제관련 [6] | 그냥뛰어 | 2008.11.24 |
XE 로그인이 안될때 확인해 보세요. [7] | 똑디 | 2008.12.11 |
XE와 별도 프로그램 연동시 세션공유 [15] | 똑디 | 2008.12.12 |
로그인한 회원만 최근 게시글, 검색등 볼수 있도록 하기 [3] | [_)s | 2008.12.31 |
제로보드XE 쉽게 업데이트 하는 방법.. [13] | 청개구리00 | 2009.01.12 |