'소스'에 해당되는 글 1건

  1. 2008.03.01 성인인증 소스

성인인증 소스

WEB/php소스 2008. 3. 1. 23:55
<content formatter="ttml" editor="modern"><DIV><A class=article_title href="http://www.webdoor.org/oldhome/blog/index.php?blog_code=php&amp;article_id=631"><U><FONT color=#800080>3.홈페이지 구성</FONT></U></A> <SPAN class=category_title>| <A class=category_title href="http://www.webdoor.org/oldhome/blog/index.php?blog_code=php&amp;category_id=143"><U><FONT color=#0000ff>성인인증</FONT></U></A></SPAN> </DIV> <DIV class=article_contents> <P style="MARGIN-TOP: 50px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; MARGIN-BOTTOM: 20px; BORDER-LEFT: steelblue 10px solid; WIDTH: 98%; COLOR: #005f90; LINE-HEIGHT: 1.4; BORDER-BOTTOM: steelblue 1px solid">파일 구성</P> <TABLE class=" FCK__ShowTableBorders" style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 9pt; PADDING-BOTTOM: 5px; BORDER-LEFT: gray 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: #dddddd" cellSpacing=0 cellPadding=0 width="96%" align=center> <TBODY> <TR> <TD style="FONT-SIZE: 9pt; LINE-HEIGHT: 1.3"><PRE style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px">home.php - 1. 주민등록번호 입력양식을 제공 2. 입력된 주민등록번호의 유효성 검증 3. 검증 결과에 따른 분기</PRE></TD></TR></TBODY></TABLE> <P style="MARGIN-TOP: 50px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; MARGIN-BOTTOM: 20px; BORDER-LEFT: steelblue 10px solid; WIDTH: 98%; COLOR: #005f90; LINE-HEIGHT: 1.4; BORDER-BOTTOM: steelblue 1px solid">로직</P> <TABLE class=" FCK__ShowTableBorders" width="100%"> <TBODY> <TR> <TD align=middle> <TABLE class=" FCK__ShowTableBorders"> <TBODY> <TR> <TD align=middle> <P align=center><IMG src="http://www.webdoor.org/oldhome/blog/thumbs.php?file_id=1863&amp;width=500&amp;test=3" name=attach_image></P></TD></TR> <TR> <TD style="COLOR: teal; TEXT-ALIGN: center" vAlign=bottom height=30>홈페이지 로직</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE> <P style="MARGIN-TOP: 50px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; MARGIN-BOTTOM: 20px; BORDER-LEFT: steelblue 10px solid; WIDTH: 98%; COLOR: #005f90; LINE-HEIGHT: 1.4; BORDER-BOTTOM: steelblue 1px solid">세션을 이용한 접속자 상태 확인 및 그에 따른 처리</P> <P style="MARGIN-TOP: 25px; FONT-WEIGHT: bold; MARGIN-BOTTOM: 16px; COLOR: steelblue; TEXT-INDENT: 2em">PHP 4.0.0 ~ 4.0.3일 때</P> <TABLE class=" FCK__ShowTableBorders" style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 9pt; PADDING-BOTTOM: 5px; BORDER-LEFT: gray 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: #dddddd" cellSpacing=0 cellPadding=0 width="96%" align=center> <TBODY> <TR> <TD style="FONT-SIZE: 9pt; LINE-HEIGHT: 1.3"><PRE style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px">session_start(); if (!isset($HTTP_SESSION_VARS["AdultCard"])) { // // 웹사이트에 처음 접속했거나 로그아웃한 경우 // session_register("AdultCard"); $HTTP_SESSION_VARS["AdultCard"] = array("permission"=&gt;"no"); } $AdultCard = $HTTP_SESSION_VARS["AdultCard"]; if ("ok" != $AdultCard["permission"]) { // // 처음 접속하거나 로그인에 실패한 경우 주민등록번호 입력양식을 출력 // login_form(); } else { // // 로그인에 성공한 경우는 성인용 페이지로 직행 // ?&gt; &lt;META http-equiv='refresh' content='0; url=adult.php'&gt; &lt;?php }</PRE></TD></TR></TBODY></TABLE> <P style="MARGIN-TOP: 25px; FONT-WEIGHT: bold; MARGIN-BOTTOM: 16px; COLOR: steelblue; TEXT-INDENT: 2em">PHP 4.0.4 ~ 4.0.5일 때</P> <TABLE class=" FCK__ShowTableBorders" style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 9pt; PADDING-BOTTOM: 5px; BORDER-LEFT: gray 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: #dddddd" cellSpacing=0 cellPadding=0 width="96%" align=center> <TBODY> <TR> <TD style="FONT-SIZE: 9pt; LINE-HEIGHT: 1.3"><PRE style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px">session_start(); if (!isset($HTTP_SESSION_VARS["AdultCard"])) { // // 웹사이트에 처음 접속했거나 로그아웃한 경우 // session_register("AdultCard"); $HTTP_SESSION_VARS["AdultCard"] = array("permission"=&gt;"no"); } $AdultCard = &amp; $HTTP_SESSION_VARS["AdultCard"]; if ("ok" != $HTTP_SESSION_VARS["AdultCard"]["permission"]) { // // 처음 접속하거나 로그인에 실패한 경우 주민등록번호 입력양식을 출력 // login_form(); } else { // // 로그인에 성공한 경우는 성인용 페이지로 직행 // ?&gt; &lt;META http-equiv='refresh' content='0; url=adult.php'&gt; &lt;?php }</PRE></TD></TR></TBODY></TABLE> <P style="MARGIN-TOP: 25px; FONT-WEIGHT: bold; MARGIN-BOTTOM: 16px; COLOR: steelblue; TEXT-INDENT: 2em">PHP 4.1.0 ~ 일 때</P> <TABLE class=" FCK__ShowTableBorders" style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 9pt; PADDING-BOTTOM: 5px; BORDER-LEFT: gray 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: #dddddd" cellSpacing=0 cellPadding=0 width="96%" align=center> <TBODY> <TR> <TD style="FONT-SIZE: 9pt; LINE-HEIGHT: 1.3"><PRE style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px">session_start(); if (!isset($_SESSION["AdultCard"])) { // // 웹사이트에 처음 접속했거나 로그아웃한 경우 // $_SESSION["AdultCard"] = array("permission"=&gt;"no"); } if ("ok" != $_SESSION["AdultCard"]["permission"]) { // // 처음 접속하거나 로그인에 실패한 경우 주민등록번호 입력양식을 출력 // login_form(); } else { // // 로그인에 성공한 경우는 성인용 페이지로 직행 // ?&gt; &lt;META http-equiv='refresh' content='0; url=adult.php'&gt; &lt;?php }</PRE></TD></TR></TBODY></TABLE> <P style="MARGIN-TOP: 20px; FONT-SIZE: 9pt; MARGIN-BOTTOM: 20px; COLOR: black; TEXT-INDENT: 2em; LINE-HEIGHT: 1.6">세션 변수 $AdultCard는 연관배열로 "permission" 배열요소의 상태에 따라 성인 인증을 받았는지 안받았는지를 구분합니다. 이 값이 "no"이면 처음 접속하였거나 로그인에 실패한 접속자가 되며, "ok"이면 이미 성인 인증을 받은 접속자임을 나타냅니다.</P> <P style="MARGIN-TOP: 20px; FONT-SIZE: 9pt; MARGIN-BOTTOM: 20px; COLOR: black; TEXT-INDENT: 2em; LINE-HEIGHT: 1.6">따라서 "no"일 때는 접속자의 주민등록번호를 입력받는 화면을 나타냄으로 접속자로 하여금 성인 인증이 필요하다는 것을 알려주게되며, "ok"일 때는 즉시 성인용 페이지로 직행하게 됩니다.</P> <P style="MARGIN-TOP: 20px; FONT-SIZE: 9pt; MARGIN-BOTTOM: 20px; COLOR: black; TEXT-INDENT: 2em; LINE-HEIGHT: 1.6">PHP 버전에 따라 코딩 방법을 약간씩 다르게 해 보았습니다. 오십보 백보이기는 하지만 그래도 버전별로 보안상 가장 나은 방법을 택하여 작성해 보았습니다. 제가 보안 전문가가 아니라 잘못 이해하고 작성된 것이 있을 지 모르겠네요. 그렇다면 Q &amp; A 게시판을 이용하여 지적하여 주시기 바랍니다. 하위버전용으로 작성된 것은 상위버전에서도 사용될 수 있으나 그 반대로는 불가능합니다.</P> <P style="MARGIN-TOP: 50px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; MARGIN-BOTTOM: 20px; BORDER-LEFT: steelblue 10px solid; WIDTH: 98%; COLOR: #005f90; LINE-HEIGHT: 1.4; BORDER-BOTTOM: steelblue 1px solid">주민등록번호 입력 화면</P> <TABLE class=" FCK__ShowTableBorders" width="100%"> <TBODY> <TR> <TD align=middle> <TABLE class=" FCK__ShowTableBorders"> <TBODY> <TR> <TD align=middle> <P align=center><IMG src="http://www.webdoor.org/oldhome/blog/thumbs.php?file_id=1864&amp;width=500&amp;test=3" name=attach_image></P></TD></TR> <TR> <TD style="COLOR: teal; TEXT-ALIGN: center" vAlign=bottom height=30>주민등록번호 입력</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE> <P style="MARGIN-TOP: 20px; FONT-SIZE: 9pt; MARGIN-BOTTOM: 20px; COLOR: black; TEXT-INDENT: 2em; LINE-HEIGHT: 1.6">처음 접속하였거나 앞에서 행한 로그인에서 인증에 실패한 경우에는 이와 같은 입력화면을 출력하여 성인 인증을 위한 주민등록번호를 입력받도록 합니다.</P> <P style="MARGIN-TOP: 20px; FONT-SIZE: 9pt; MARGIN-BOTTOM: 20px; COLOR: black; TEXT-INDENT: 2em; LINE-HEIGHT: 1.6">청소년유해매체물의 경우에는 청소년보호법 및 정보통신망이용촉진및정보보호 등에 관한 법률에 의하여 그 표시방법 및 청소년 접근을 제한할 수 있는 방법 등에 관하여 규정하고 있습니다. 성인 인증 소스를 공개하는 본인은 법률의 문외한으로 이 소스가 위의 청소년유해매체물에 대한 표기 및 접근차단 방법이 동법에 적합한지는 알지 못합니다. 따라서 여기서 공개하는 모든 인증 소스는 누구나 자유롭게 이용(복사,수정,배포,재배포)할 수 있으나, 사용중 발생할 수 있는 모든 문제(법규 위반에 따른 책임 소재 및 그 외 발생가능한 모든 피해)에 대하여 어떠한 책임도 질 수 없음을 알려드립니다.</P> <TABLE class=" FCK__ShowTableBorders" style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 9pt; PADDING-BOTTOM: 5px; BORDER-LEFT: gray 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: #dddddd" cellSpacing=0 cellPadding=0 width="96%" align=center> <TBODY> <TR> <TD style="FONT-SIZE: 9pt; LINE-HEIGHT: 1.3"><PRE style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px">&lt;CENTER&gt; &lt;TABLE width="400" border="0" cellpadding="0" cellspacing="6"&gt; &lt;TR&gt; &lt;TD align="center" height="134" width=90%&gt; &lt;P&gt; 이 정보내용은 청소년유해매체물로서 정보통신망이용촉진및정보보호 등에 관한 법률 및 청소년보호법의&lt;BR&gt;규정에 의하여 &lt;IMG src="img/19-.gif" align="middle" width="100" height="28" border="0" alt="만19세 미만"&gt;의 청소년이 이용할 수 없습니다. &lt;/P&gt; &lt;P&gt; 주민등록번호로 성인여부를 판단합니다. &lt;/P&gt; &lt;/TD&gt; &lt;/TR&gt; &lt;TR&gt; &lt;TD align="center" height="102"&gt; &lt;!-- 로그인 폼양식 출력 시작 --&gt; &lt;FORM name=form1 action="login.php" method=post&gt; &lt;TABLE width="350" border="0" cellpadding="0" cellspacing="6" bgcolor="#dbf09f"&gt; &lt;TR&gt; &lt;TD align="right"&gt; 주민등록번호 &lt;/TD&gt; &lt;TD&gt; &lt;INPUT size=6 maxlength=6 name=j1 type=text onKeyUp="checkKey(this.form)"&gt; -&lt;INPUT size=7 maxlength=7 name=j2 type=password onKeyDown="checkKey(this.form)"&gt; &lt;/TD&gt; &lt;/TR&gt; &lt;TR&gt; &lt;TD align="center" height="30" colspan="2"&gt; &lt;INPUT type=button value="성인공간 입장" onClick="checkKey(this.form)"&gt; &lt;/TD&gt; &lt;/TR&gt; &lt;/TABLE&gt; &lt;/FORM&gt; &lt;!-- 로그인 폼양식 출력 종료 --&gt; &lt;/TD&gt; &lt;/TR&gt; &lt;/TABLE&gt; &lt;/CENTER&gt;</PRE></TD></TR></TBODY></TABLE> <P style="MARGIN-TOP: 50px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; MARGIN-BOTTOM: 20px; BORDER-LEFT: steelblue 10px solid; WIDTH: 98%; COLOR: #005f90; LINE-HEIGHT: 1.4; BORDER-BOTTOM: steelblue 1px solid">주민등록번호 1차 검증</P> <P style="MARGIN-TOP: 20px; FONT-SIZE: 9pt; MARGIN-BOTTOM: 20px; COLOR: black; TEXT-INDENT: 2em; LINE-HEIGHT: 1.6">주민등록번호를 입력하게 되면 자바스크립트로 작성된 checkKey 함수에 의해 입력된 주민등록번호가 올바른 것인지 1차 검증하게 됩니다. 이 소스 역시 인터넷 상에 이미 공개된 소스로 정확한 검증은 아니며 개략적으로만 그 유효성을 검증할 수 있습니다. 자바스크립트로 더 정확하게 검증해주는 소스를 원한다면 PHPSCHOOL.COM에서 검색해 보세요. 찾을 수 있을 것입니다.</P> <TABLE class=" FCK__ShowTableBorders" style="BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px solid; PADDING-LEFT: 5px; FONT-SIZE: 9pt; PADDING-BOTTOM: 5px; BORDER-LEFT: gray 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: #dddddd" cellSpacing=0 cellPadding=0 width="96%" align=center> <TBODY> <TR> <TD style="FONT-SIZE: 9pt; LINE-HEIGHT: 1.3"><PRE style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-RIGHT-WIDTH: 0px">&lt;SCRIPT language=javascript&gt; &lt;!-- function checkJumin(jumin1, jumin2) { var i, sum = 0; var str = jumin1 + jumin2; if (parseInt(jumin2) &lt; 1000000 &amp;&amp; parseInt(jumin2) &gt; 4999999) return false; for (i=0,sum=0; i&lt;12; i++) sum += (((i%8) + 2) * (str.charAt(i) - "0")); if (((11 - (sum % 11)) % 10) == str.charAt(12)) return true; return false; } function checkKey(form) { if (form.j1.value.length==6) form.j2.focus(); key = event.keyCode; if (key==13 || key==0) { if (form.j1.value.length != 6 || form.j2.value.length != 7) { alert("주민등록번호를 입력하세요."); form.j1.focus(); return; } if (checkJumin(form.j1.value,form.j2.value)==false) { alert("주민등록번호가 맞지 않습니다."); form.j1.focus(); return; } form.submit(); } } //--&gt; &lt;/SCRIPT&gt;</PRE></TD></TR></TBODY></TABLE> <P style="MARGIN-TOP: 20px; FONT-SIZE: 9pt; MARGIN-BOTTOM: 20px; COLOR: black; TEXT-INDENT: 2em; LINE-HEIGHT: 1.6">현재 페이지에서 입력된 주민등록번호를 1차 검증하여 통과된 경우에만 로그인 처리 페이지로 넘어가 2차 검증을 받게 됩니다. 일단 이곳에서 간략하게나마 입력된 주민등록번호의 유효성을 검증하여 잘못된 것은 다시 주민등록번호를 입력하도록 함으로써 서버의 부하를 다소나마 줄여줄 수 있을 것입니다.<br /><br /><br />출처 : <STRONG>phpclass.com(피클닷컴)</STRONG> <A href="http://www.webdoor.org/oldhome/blog/index.php?blog_code=php"><FONT class=blog_url color=#0000ff><U>http://www.webdoor.org/oldhome/blog/index.php?blog_code=php</U></FONT></A></P></DIV></content>

'WEB > php소스' 카테고리의 다른 글

세금계산서 출력소스  (0) 2008.03.02
이미지 업로드시 자동으로 섬네일 이미지 만들어 주기장정식  (0) 2008.03.02
성인인증 _4  (0) 2008.03.02
성인인증소스  (0) 2008.03.02
php정보 확인하는 소스  (0) 2008.03.02
: