주민등록번호없이 메일주소로만 비번찾기 > MySQL Tip

본문 바로가기
 

주민등록번호없이 메일주소로만 비번찾기

페이지 정보

작성자 차동박 이름으로 검색 댓글 0건 조회 16,794회 작성일 05-12-01 22:43

본문

메일주소로만 비번찾기
에띠안베레 (Homepage) 2002-11-18 02:42:21, 조회 : 3,955, 추천 : 3
t.gif
 
역시 이것도 이것 저것 주워 담은 거라서 출처를 적기가 애매합니다..

먼저 아래와 같이 db 테이블을 만들어 줍니다..물론 제로보드가 설치된 디렉토리에 올리셔야 합니다..

/////////////////////

<?
$connect=mysql_connect("호스트네임","db아이디","비번"); //MySQL DB에 접근
mysql_select_db("db이름", $connect);

$member_table_limit="ALTER TABLE zetyx_member_table ADD limit_time int(13) DEFAULT '0' NULL";
$member_table_pin="ALTER TABLE zetyx_member_table ADD pin varchar(20) DEFAULT '0' NULL";

echo "Limit_time테이블 생성이 완료되었습니다.";

mysql_query($member_table_limit);

echo mysql_errno().": ".mysql_error()."
";

echo "Pin테이블 생성이 완료되었습니다.";

mysql_query($member_table_pin);

echo mysql_errno().": ".mysql_error()."
";

mysql_close();
?>

그런 다음 .lostid1.php lostid2.php lostid3.php 요렇게 세개를 만들어줍니다..

//////// lostid1.php /////////////

<?
include "lib.php";

// 웹마스터 E-mail
$_from = $_zbDefaultSetup[email];

// 사이트 주소
$_homepage = $_zbDefaultSetup[url];

// 사이트 이름
$_sitename = $_zbDefaultSetup[sitename];

if(!$_from||!$_homepage||!$_sitename) error("관리자 정보가 입력되어 있지 않습니다.
setup.php 파일을 관리자가 수정하여야 합니다");

head();
?>




function check_submit()
{
if(!lostid.email.value) {alert("E-Mail을 입력하여 주십시요"); lostid.email.focus(); return false; }
return true;
}



lo_title.gif lo_back.gif lo_right.gif

t.gif

비밀번호 분실시 회원가입시 등록한 이멜주소로 본인확인을 위한 메일을 보냅니다.
보낸 메일의 비밀번호확인 버튼을 클릭하면 새로운 비밀번호를 확인할 수 있습니다.

t.gif


lo_email.gif


lo_close.gif

t.gif


t.gif

<?
@mysql_close($connect);
foot();
?>

/////////// lostid2.php /////////////

<?
include "lib.php";

// 웹마스터 E-mail
$_from = $_zbDefaultSetup[email];

// 사이트 주소
$_homepage = $_zbDefaultSetup[url];

// 사이트 이름
$_sitename = $_zbDefaultSetup[sitename];

$connect = dbconn();

if(isblank($email)) Error("E-Mail을 입력하여 주세요");

$result=mysql_query("select * from zetyx_member_table where email='$email'",$connect) or Error(mysql_error());
$data=mysql_fetch_array($result);

if(!mysql_num_rows($result)) Error("입력하신 정보에 해당하는 회원이 없습니다.

다시 한번확인하여 주시기 바랍니다");

$temp=substr(base64_encode(time()*mt_rand(1,10)),1,10);
$now = time();
$limit = $now+86400;

$nowview = date("Y년 m월 d일 H시 i분 s초", $now);
$limitview = date("Y년 m월 d일 H시 i분 s초", $limit);

mysql_query("update $member_table set pin='$temp', limit_time='$limit' where no='$data[no]'",$connect) or Error(mysql_error());


$name=stripslashes($data[name]);
$to=$data[email];
$subject="비밀번호 자동발급 확인 메일";

$comment="안녕하세요.n"."$_sitename 입니다.n"."$name 님께서는 $nowview 에 비밀번호 자동발급 신청을 하셨습니다.n아래의 비밀번호 받기 버튼을 클릭하시면 새로운 비밀번호를 확인하실 수 있습니다.n만일 비밀번호 자동발급 신청을 하지 않으셨다면 메일을 삭제해 주십시오.n아래 버튼은 $limitview 까지 유효합니다.n";

if(!zb_sendmail(1, $to, $name, $_from, "", $subject, $comment)) Error("메일 발송 에러");


@mysql_close($connect);
?>

alert('<?=$email?>로 비밀번호를 확인할 수 있는 태그가 발송되었습니다.nn메일을 확인하시면 비밀번호를 확인하실 수 있습니다.');
window.close();


/////// lostid3.php /////////

<?
include "lib.php";

// 웹마스터 E-mail
$_from = $_zbDefaultSetup[email];

// 사이트 주소
$_homepage = $_zbDefaultSetup[url];

// 사이트 이름
$_sitename = $_zbDefaultSetup[sitename];

$connect = dbconn();

if(isblank($email)) Error("E-Mail을 입력하여 주세요");
$result=mysql_query("select * from zetyx_member_table where email='$email' ",$connect) or Error(mysql_error());

if(!mysql_num_rows($result)) Error("입력하신 정보에 해당하는 회원이 없습니다.

다시 한번확인하여 주시기 바랍니다");

$now = time();
$temp=substr(base64_encode($now),1,10);
$data=mysql_fetch_array($result);

if($data[limit_time] < $now or isblank($data[limit_time])) Error("시간초과");
if($data[pin] != $pin or isblank($data[pin])) Error("잘못된 접근!!");
mysql_query("update $member_table set password=password('$temp') where no='$data[no]'",$connect) or Error(mysql_error());
mysql_query("update $member_table set limit_time='' where no='$data[no]'",$connect) or Error(mysql_error());
mysql_query("update $member_table set pin='' where no='$data[no]'",$connect) or Error(mysql_error());

$name=stripslashes($data[name]);

@mysql_close($connect);
?>

<?=$data[user_id]?>님의 패스워드는 <?=$temp?>로 변경되었습니다.

지금 바로 로그인하셔서 비밀번호를 변경하시기 바랍니다.


target=_top><?=$_sitename?>으로 바로가기


이렇게 하심 될꺼 같구요...디비 테이블 설정하는 부분이랑 lostid2.php에서 제로보드 경로 설정하는 부분만 신경쓰시면 될꺼 같습니다..

 
구차한 목숨으로 사랑을 못해 사랑은 그렇게 쉽지 않아라
두려움에 떨면 술도 못마셔 그렇게 마신 술에 네가 죽는다.
 
t.gif
 
t.gif
t.gif
 
바른생활 NZEO
t.gif 글은 인터넷에서 자신을 나타내는 유일한 모습입니다.
상대에게 상처를 주기보다 같이 즐거워 할 수 있는 코멘트 부탁드려요.
2005-12-01
22:28:50
t.gif
 
t.gif
t.gif
 
ROBIN
t.gif 이렇게 할 필요없이 lostid.php와 lostid_search.php 에서 주민번호 적는 부분과 빈공간일시 에러나는 부분만 지워주면 메일 주소만으로도 비번 잘 날아오던데요^-^ 2002-11-19
16:25:43

t.gif
 
t.gif
t.gif
 
cuebrick
t.gif ROBIN 님 저도 그렇게 생각 했었는데...
이메일로만 임시 비번을 발급할 경우
악의를 가진 사람이 마구 비번을 바꿔 버리는 일이 벌어질 수도있습니다.
위의 소스는 ... 임시 비번의 유효 시간을 정해서 그 시간이 지나면 다시 원래의 비번으로 복귀 되는 소스입니다. 그래서 주민등록번호를 입력받지 않는 사이트에서 더더욱 유용하게 사용될수 있습니다. 저도 사용중이고요...

그런데...글을 쓰신...
에띠안베레님...
이거 이 소스와 다르지 않아보이는데요?
http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&keyword=&select_arrange=headnum&desc=asc&no=2632

저는 이 소스를 보고 만들었습니다만 -_-

댓글목록

등록된 댓글이 없습니다.

Total 243건 8 페이지
MySQL Tip 목록
번호 제목 글쓴이 조회 날짜
117 차동박 이름으로 검색 10080 12-27
116 차동박 이름으로 검색 16723 12-27
115 차동박 이름으로 검색 21833 12-27
114 차동박 이름으로 검색 9938 08-07
113 차동박 이름으로 검색 18696 12-17
열람중 차동박 이름으로 검색 16795 12-01
111 차동박 이름으로 검색 12914 11-27
110 차동박 이름으로 검색 17316 11-24
109 차동박 이름으로 검색 17455 11-24
108 차동박 이름으로 검색 16963 10-29
107 차동박 이름으로 검색 17255 10-28
106 차동박 이름으로 검색 19451 10-28
105 차동박 이름으로 검색 17653 10-28
104 차동박 이름으로 검색 17690 10-28
103 차동박 이름으로 검색 10873 10-27
102 차동박 이름으로 검색 17519 10-27
101 차동박 이름으로 검색 23570 10-27
100 차동박 이름으로 검색 10452 10-25
게시물 검색