Siren24 페이지 이동없이 Socket 으로 실명인증( UTF-8)
phpschool.com에서 퍼옴.
정말 대단합니다...^^
ssn.html//
##########################################
<html>
<body>
<script type="text/javascript">
var xmlhttp = XMLHTTP();
function XMLHTTP() {
try {
xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
}
catch(e) {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function remove_space( str ) {
str = str.replace(/\s+/g,"");
return str;
}
function is_numeric( str ) {
if ( str == str.match(/[0-9]+$/) )
{
return true;
}
else { return false; }
}
function is_ssn( ssn1 , ssn2 ) {
if ( !is_numeric(ssn1) || !is_numeric(ssn2) || ssn1.length != 6 || ssn2.length !=7 ) { return false; }
else { return true; }
}
function chk_ssn() {
var name = remove_space( document.getElementById("name").value );
var ssn1 = remove_space( document.getElementById("ssn1").value );
var ssn2 = remove_space( document.getElementById("ssn2").value );
if ( name == "" )
{
alert('이름을 입력해 주세요');
document.getElementById("name").focus();
return false;
}
else if( !is_ssn( ssn1 , ssn2 ))
{
alert('주민등록번호를 정확히 입력해 주시기 바랍니다.');
document.getElementById("ssn1").focus();
return false;
}
else {
document.getElementById("chk_ssn_msg").innerHTML="실명 확인중입니다.";
try
{
with( xmlhttp ) {
open("POST", "chk_ssn.php", true);
setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if ( xmlhttp.status==200)
{
var res = remove_space(xmlhttp.responseText) ;
var res_ = res.split("|");
res_no = res_[0];
if ( res_no == 99)
{
document.getElementById("chk_ssn_msg").innerHTML="<a onclick=\"chk_ssn();\">실명인증</a>";
alert('기존에 가입하신 아이디가 있습니다.');
}
else if ( res_no=="1" ) {
document.getElementById("chk_ssn_msg").innerHTML="<a onclick=\"chk_ssn();\">실명인증</a>";
alert('실명확인 성공.');
}
else if (res_no==2 || res_no == 4 )
{
document.getElementById("chk_ssn_msg").innerHTML="<a onclick=\"chk_ssn();\">실명인증</a>";
alert('주민등록번호 오류 입니다. 다시 입력해 주세요.');
}
else {
document.getElementById("chk_ssn_msg").innerHTML="<a onclick=\"chk_ssn();\">실명인증</a>";
if ( confirm('실명이 인증되지 않았습니다. 일반 회원으로 가입하시겠습니까?') )
{
document.getElementById("ssn_form").realSSN.value = "0";
document.getElementById("ssn_form").submit();
}
}
}
}
}
send( "name="+ name +"&ssn1="+ ssn1 + "&ssn2=" + ssn2 );
}
}
catch ( e)
{
}
}
}
</script>
<form>
이름:<input type="text" name="name" id="name" /><br />
주민번호앞: <input type="text" name="ssn1" id="ssn1" maxlength="6" /><br />
주민번호뒤:<input type="password" name="ssn2" id="ssn2" maxlength="7" /><br />
메세지:<span id="chk_ssn_msg"><a onclick="chk_ssn();" style="cursor:pointer;cursor:hand">실명확인</a></span>
</form>
</body>
</html>
#######################################
chk_ssn.php
#######################################
<?
include "../inc/funct/common.inc.php";
include "../inc/funct/db_class.inc.php";
//가입 유저인지 확인 (중복가입 금지)
/*
$que = "SELECT user_id FROM _member_login WHERE ssn='".$_POST['ssn1'].$_POST['ssn2']."'";
$rs = $db->ExecQuery($que);
$chk_num = $db->GetNumrows($rs);
*/
if ( $chk_num > 0 ) {
/*
$id = $db->GetResult($rs,0,0);
echo "99|".$id;
*/
}
else {
$host = "210.207.91.246"; //신용평가원 아이피
$uri = "/servlet/name_check"; //POST 데이타 전송할 URI
$name = iconv( "UTF-8","EUC-KR",$_POST['name']);
/** 수정 **/
$ok_url = "http://okurl";//중요하지 않음
$referer_page = "http://신평에 등록된 실명인증확인 페이지";
$siren_id = "siren 아이디";
/** 수정 **/
$jumin1 = $_POST['ssn1'];
$jumin2 = $_POST['ssn2'];
$reqbody =
"id=$siren_id&name=".urlencode( $name ).
"&jumin1=$jumin1".
"&jumin2=$jumin2".
"&ok_url=".urlencode($ok_url); // 리턴주소 별로 중요하지 않음
$contentlength = strlen($reqbody);
$reqheader = "POST $uri HTTP/1.0\r\n".
"Host: name.siren24.com\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"Referer: $referer_page\r\n".
"Content-Length: $contentlength\r\n\r\n".
"$reqbody\r\n";
$fp = fsockopen( $host , 80 , $err , $err2);
fputs($fp, $reqheader);
$tmp="x";
while ($tmp!="") {
$tmp = $buffer = fgets($fp, 4096);
if (preg_match('/name=result/',$buffer,$aMatch)) {
preg_match('/value=\\"([^\\"]*)\\"/',$buffer,$aMatch);
$result = $aMatch[1];
}
if (preg_match('/<font>/',$buffer,$aMatch)) {
preg_match('/<font>([^\\"]*)\<\/font>/',$buffer,$aMatch2);
$result = $aMatch2[1];
}
//echo $buffer;
}
fclose($fp);
?>
<?
if (!is_numeric( $result ) ) {
$result="0";
}
echo (int)$result;
}
?>
#####################<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
정말 대단합니다...^^
ssn.html//
##########################################
<html>
<body>
<script type="text/javascript">
var xmlhttp = XMLHTTP();
function XMLHTTP() {
try {
xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
}
catch(e) {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function remove_space( str ) {
str = str.replace(/\s+/g,"");
return str;
}
function is_numeric( str ) {
if ( str == str.match(/[0-9]+$/) )
{
return true;
}
else { return false; }
}
function is_ssn( ssn1 , ssn2 ) {
if ( !is_numeric(ssn1) || !is_numeric(ssn2) || ssn1.length != 6 || ssn2.length !=7 ) { return false; }
else { return true; }
}
function chk_ssn() {
var name = remove_space( document.getElementById("name").value );
var ssn1 = remove_space( document.getElementById("ssn1").value );
var ssn2 = remove_space( document.getElementById("ssn2").value );
if ( name == "" )
{
alert('이름을 입력해 주세요');
document.getElementById("name").focus();
return false;
}
else if( !is_ssn( ssn1 , ssn2 ))
{
alert('주민등록번호를 정확히 입력해 주시기 바랍니다.');
document.getElementById("ssn1").focus();
return false;
}
else {
document.getElementById("chk_ssn_msg").innerHTML="실명 확인중입니다.";
try
{
with( xmlhttp ) {
open("POST", "chk_ssn.php", true);
setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if ( xmlhttp.status==200)
{
var res = remove_space(xmlhttp.responseText) ;
var res_ = res.split("|");
res_no = res_[0];
if ( res_no == 99)
{
document.getElementById("chk_ssn_msg").innerHTML="<a onclick=\"chk_ssn();\">실명인증</a>";
alert('기존에 가입하신 아이디가 있습니다.');
}
else if ( res_no=="1" ) {
document.getElementById("chk_ssn_msg").innerHTML="<a onclick=\"chk_ssn();\">실명인증</a>";
alert('실명확인 성공.');
}
else if (res_no==2 || res_no == 4 )
{
document.getElementById("chk_ssn_msg").innerHTML="<a onclick=\"chk_ssn();\">실명인증</a>";
alert('주민등록번호 오류 입니다. 다시 입력해 주세요.');
}
else {
document.getElementById("chk_ssn_msg").innerHTML="<a onclick=\"chk_ssn();\">실명인증</a>";
if ( confirm('실명이 인증되지 않았습니다. 일반 회원으로 가입하시겠습니까?') )
{
document.getElementById("ssn_form").realSSN.value = "0";
document.getElementById("ssn_form").submit();
}
}
}
}
}
send( "name="+ name +"&ssn1="+ ssn1 + "&ssn2=" + ssn2 );
}
}
catch ( e)
{
}
}
}
</script>
<form>
이름:<input type="text" name="name" id="name" /><br />
주민번호앞: <input type="text" name="ssn1" id="ssn1" maxlength="6" /><br />
주민번호뒤:<input type="password" name="ssn2" id="ssn2" maxlength="7" /><br />
메세지:<span id="chk_ssn_msg"><a onclick="chk_ssn();" style="cursor:pointer;cursor:hand">실명확인</a></span>
</form>
</body>
</html>
#######################################
chk_ssn.php
#######################################
<?
include "../inc/funct/common.inc.php";
include "../inc/funct/db_class.inc.php";
//가입 유저인지 확인 (중복가입 금지)
/*
$que = "SELECT user_id FROM _member_login WHERE ssn='".$_POST['ssn1'].$_POST['ssn2']."'";
$rs = $db->ExecQuery($que);
$chk_num = $db->GetNumrows($rs);
*/
if ( $chk_num > 0 ) {
/*
$id = $db->GetResult($rs,0,0);
echo "99|".$id;
*/
}
else {
$host = "210.207.91.246"; //신용평가원 아이피
$uri = "/servlet/name_check"; //POST 데이타 전송할 URI
$name = iconv( "UTF-8","EUC-KR",$_POST['name']);
/** 수정 **/
$ok_url = "http://okurl";//중요하지 않음
$referer_page = "http://신평에 등록된 실명인증확인 페이지";
$siren_id = "siren 아이디";
/** 수정 **/
$jumin1 = $_POST['ssn1'];
$jumin2 = $_POST['ssn2'];
$reqbody =
"id=$siren_id&name=".urlencode( $name ).
"&jumin1=$jumin1".
"&jumin2=$jumin2".
"&ok_url=".urlencode($ok_url); // 리턴주소 별로 중요하지 않음
$contentlength = strlen($reqbody);
$reqheader = "POST $uri HTTP/1.0\r\n".
"Host: name.siren24.com\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"Referer: $referer_page\r\n".
"Content-Length: $contentlength\r\n\r\n".
"$reqbody\r\n";
$fp = fsockopen( $host , 80 , $err , $err2);
fputs($fp, $reqheader);
$tmp="x";
while ($tmp!="") {
$tmp = $buffer = fgets($fp, 4096);
if (preg_match('/name=result/',$buffer,$aMatch)) {
preg_match('/value=\\"([^\\"]*)\\"/',$buffer,$aMatch);
$result = $aMatch[1];
}
if (preg_match('/<font>/',$buffer,$aMatch)) {
preg_match('/<font>([^\\"]*)\<\/font>/',$buffer,$aMatch2);
$result = $aMatch2[1];
}
//echo $buffer;
}
fclose($fp);
?>
<?
if (!is_numeric( $result ) ) {
$result="0";
}
echo (int)$result;
}
?>
#####################<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
댓글 1개
19년 전
ajax 코드로 처리하면 쉬운것을 이전에 왜 그리 페이지 이동을 해서 한글이름 깨지고 ㅜ.ㅜ
동생넘이 asp로 짜면서 ajax코드로 금방 처리해버리더군요.. 헉~! 하는 말밖에.. 덕분에 한가지 배웠지만요..
동생넘이 asp로 짜면서 ajax코드로 금방 처리해버리더군요.. 헉~! 하는 말밖에.. 덕분에 한가지 배웠지만요..
게시글 목록
| 번호 | 제목 |
|---|---|
| 8624 |
기타
소유권변경
|
| 8623 | |
| 8617 | |
| 8615 | |
| 28464 | |
| 8613 | |
| 8612 | |
| 8611 |
JavaScript
vim 의 들여쓰기 + 색상 눈 덜피곤 c++ php 등.. (리눅스용)
|
| 8610 |
JavaScript
vim 의 간단한 사용법
|
| 8609 |
JavaScript
[자바스크립트] 상태표시줄 제어 + 간단한 복사 제어
|
| 8606 |
Linux
/etc 디렉토리 아래의 파일들
2
|
| 8605 |
기타
shadow 잠금 해제
|
| 8604 | |
| 8603 |
JavaScript
yum 업데이트 되는곳 7.3 or 페도라
|
| 8602 |
MySQL
mysql 링크하기
|
| 8601 | |
| 8600 |
MySQL
mysql.sock 삭제 하였을 경우
|
| 8599 | |
| 8598 | |
| 8597 |
JavaScript
ps 시 화면 짤리는부분 보이게 하기
|
| 8596 | |
| 8595 | |
| 8594 |
기타
chmod 의 스틱키
|
| 8593 |
JavaScript
tripwire 의 twr 파일 보기
|
| 8592 |
JavaScript
최근 사용자 접속 리스트 보기
|
| 8591 | |
| 8590 | |
| 8589 |
JavaScript
atd 데몬
|
| 28463 | |
| 8588 |
JavaScript
portmap
|
| 8587 | |
| 8586 | |
| 8585 |
JavaScript
md5sum 사용방법
|
| 8584 |
JavaScript
TAR 압축방법
|
| 8583 | |
| 8581 | |
| 8580 |
기타
crontab 사용하기
|
| 8579 |
JavaScript
umask 설정법
|
| 8578 | |
| 8577 |
기타
Find 명령어 활용
|
| 8576 |
기타
zip 압축 해제
|
| 8575 |
JavaScript
삼바(samba)에서 내부만 들어오게 하기
|
| 8574 | |
| 8572 | |
| 8571 |
JavaScript
quota 젠체 용량 확인
|
| 8570 | |
| 8569 | |
| 8568 |
JavaScript
런레벨 편집
|
| 8567 |
기타
리눅스에서 문자찾기
|
| 8566 | |
| 8565 |
JavaScript
삼바로 리눅스에서 윈도우로 공유하기
|
| 8564 |
JavaScript
shadow 패스워드 잠금 해제 하기
|
| 8563 | |
| 8562 | |
| 8561 |
JavaScript
vim에서 컬러는 나오게 하기
|
| 8560 | |
| 8558 | |
| 8557 |
MySQL
my.cnf 파일은 어디에?
|
| 8556 | |
| 8555 |
MySQL
cron 설정
|
| 8554 |
JavaScript
호스트네임 바꾸기
|
| 8553 |
JavaScript
하드링크와 심볼릭링크?
|
| 28462 |
HTML
콘솔의 화면보호기능을 끄려면?
|
| 8552 |
기타
스틱키
|
| 8551 |
JavaScript
날짜 바꾸기 date 명령을 이용
|
| 28461 |
HTML
스왑 사용 안하기
|
| 8549 | |
| 8548 |
기타
SSH
|
| 8547 |
JavaScript
rsync 백업
|
| 8545 |
JavaScript
저 사양 PC로 리눅스 라우터 만들기
1
|
| 8544 |
Linux
Tripwire
|
| 8543 | |
| 8542 | |
| 8541 | |
| 8540 |
JavaScript
링크 시킨 파일 찾기
|
| 8539 |
JavaScript
리눅스 하드웨어 정보 보기
|
| 8538 | |
| 8537 | |
| 8536 |
MySQL
my.cnf 파일은 위치..
|
| 8535 |
MySQL
부팅시 자동으로 mysql 서버 자동실행
|
| 8533 |
MySQL
MySQL 루트비번 분실시 대처요령
1
|
| 8532 |
MySQL
mysql에서 log 파일 남기기
|
| 8531 |
MySQL
ALTER 테이블 추가,변경
|
| 8530 |
MySQL
sql 파일로 테이블 간단히 만들기
|
| 8529 |
MySQL
mysql 4.1 의 password()
|
| 8528 |
MySQL
mysql 에서 최대 사용자 수
|
| 8525 | |
| 8524 | |
| 8523 |
기타
핑(ping) 막기
|
| 8522 | |
| 8521 |
JavaScript
su 사용자 제한하기
|
| 8520 | |
| 8519 |
JavaScript
기본적인 삼바 설정
|
| 8518 |
기타
실시간 로그 보기..
|
| 8517 | |
| 8516 |
JavaScript
부팅 로고 삭제
|
| 8515 |
JavaScript
콘솔에서 해상도 높이기
|
| 8514 | |
| 8513 | |
| 8512 |
JavaScript
ssh로 접속할때 메시지를 보여주는 방법..
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기