입력한 아이디가 베틀넷에 존재하는 아이디인가 확인하는 회원가입 ajax 정보
입력한 아이디가 베틀넷에 존재하는 아이디인가 확인하는 회원가입 ajax
관련링크
본문
제대로 작동하는 지는 위에 링크를 통해 확인해주세요.
ajax_register_form.js 에 다음라인 추가
---------------------
// 베틀넷 검사
function reg_bnet_check() {
    var url = member_skin_path + "/ajax_bnet_check.php";
    var para = "reg_bnet="+encodeURIComponent($F('reg_bnet'));
    var myAjax = new Ajax.Request(
        url, 
        {
            method: 'post', 
            // 주소창 보안 방지 javascript:void(document.fregisterform.mb_id_enabled.value='000');
            // 동기식 (폼전송시 입력값이 바른지 검사한 후 mb_id_enabled 를 체크하기 때문)
            asynchronous: false,
            parameters: para, 
            onComplete: return_reg_bnet_check
        });
}
function return_reg_bnet_check(req) { 
    var msg = $('msg_bnet');
    var result = req.responseText;
    switch(result) {
        case '110' : msg.update('별명은 공백없이 한글, 영문, 숫자만 입력 가능합니다.').setStyle({ color: 'red' }); break;
        case '120' : msg.update('한글 2글자, 영문 4글자 이상 입력 가능합니다.').setStyle({ color: 'red' }); break;
        case '130' : msg.update('베틀넷에 존재하지 않는 아이디').setStyle({ color: 'red' }); break;
        case '000' : msg.update('베틀넷에 존재하는 아이디').setStyle({ color: 'blue' }); break;
        default : alert( '잘못된 접근입니다.\n\n' + result ); break;
    }
    $('bnet_enabled').value = result;
}
ajax_bnet_check.php 파일생성
-----------------------------
<?
include_once("_common.php");
if (!function_exists('convert_charset')) {
    /*
    -----------------------------------------------------------
        Charset 을 변환하는 함수
    -----------------------------------------------------------
    iconv 함수가 있으면 iconv 로 변환하고
    없으면 mb_convert_encoding 함수를 사용한다.
    둘다 없으면 사용할 수 없다.
    */
    function convert_charset($from_charset, $to_charset, $str) {
        if( function_exists('iconv') )
            return iconv($from_charset, $to_charset, $str);
        elseif( function_exists('mb_convert_encoding') )
            return mb_convert_encoding($str, $to_charset, $from_charset);
        else
            die("Not found 'iconv' or 'mbstring' library in server.");
    }
}
$reg_bnet = convert_charset('UTF-8','CP949',$reg_bnet);
$traffic_url="asialadders.battle.net";
$traffic_query="/war3/ladder/W3XP-player-profile.aspx?Gateway=Kalimdor&PlayerName=$reg_bnet";
$traffic_title="토익타운";
$traffic_port=80;
$connect_timeout=5;
   // 제로보드의 경우에만 필요함
  $traffic_fp = @fsockopen ($traffic_url, $traffic_port, $errno, $errstr, $connect_timeout);
  $traffic_temp = @fputs ($traffic_fp, "GET ".$traffic_query." HTTP/1.0\r\nHost: ".$traffic_url."\r\n\r\n");
$throttle_link = "http://".$traffic_url;
  if (!isset($traffic_temp) || $traffic_temp == false || $traffic_temp == 0) {
   //echo "서버에 접속할 수 없습니다! [<font color=red><b>$traffic_url</b></font>]<br>$throttle_link";
  }
$traffic_line_no = 0;
  while (!feof ($traffic_fp)) {
   $buffer[$traffic_line_no] = @fgets($traffic_fp, 128);
   // 시작 부분을 검출
   if (eregi("<HTML>", $buffer[$traffic_line_no])) {
    $traffic_html_start = $traffic_line_no;
   }
   $traffic_line_no++;
  }
  // 242 번 라인에서 사용량의 % 를 가져옴
$eee = trim(strip_tags($buffer[$traffic_html_start+284]));
$eee2 = trim(strip_tags($buffer[$traffic_html_start+285]));
$eee3 = trim(strip_tags($buffer[$traffic_html_start+286]));
$eee4 = trim(strip_tags($buffer[$traffic_html_start+287]));
$eee5 = trim(strip_tags($buffer[$traffic_html_start+288]));
if (eregi("Clan Name:", $eee)){$exex="1";}
if (eregi("Clan Name:", $eee2)){$exex="1";}
if (eregi("Clan Name:", $eee3)){$exex="1";}
if (eregi("Clan Name:", $eee4)){$exex="1";}
if (eregi("Clan Name:", $eee5)){$exex="1";}
// 별명은 한글, 영문, 숫자만 가능
if (strlen($reg_bnet) < 3) {
    echo "120"; // 4글자 이상 입력
} else {
    $row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_nick = '$reg_bnet' ");
    if (!$exex) {
        echo "130"; // 이미 존재하는 별명
    } else {
        echo "000"; // 정상
    }
}
?>
register_form.skin.php 원하는 위치에 삽입
--------------------
  <input type=hidden name=bnet_default value='<?=$member[mb_1]?>'>
   <TR bgcolor="#FFFFFF">
            <TD class=m_title>베틀넷아이디(Asia서버만가능)</TD>
            <TD class='m_padding lh'>
                <input class=ed type=text id='reg_bnet' name='mb_1' maxlength=20 value='<?=$member[mb_1]?>' onblur="reg_bnet_check()">
    <span id='msg_bnet'></span>
                <br>베틀넷 아이디는 한번 입력하면 변경 할 수 없습니다.
    <br>게임 참가시 자동으로 입력된 베틀넷아이디가 출력되니 정확히 입력해주세요
    <br>*베틀넷아이디 입력에 오류가 있으신분은 잠시후에 시도하시거나 <br><a href="http://chaos.inour.net/bbs/board.php?bo_table=service" ><b>의견및 불편사항 게시판</b></a>에 질문 해주세요.
            </TD>
        </TR>
register_form.skin.php 하단에 자바스크립트 //별명검사 밑에 넣으면됨 있는부분에 삽입
--------------------
 // 베틀넷 검사
    if ((f.w.value == "") ||
        (f.w.value == "u" && f.bnet.defaultValue != f.bnet.value)) {
reg_mb_nick_check();
        if ($F('bnet_enabled')!='000') {
            alert('베틀넷아이디를 입력하지 않았거나 존재하지않는 아이디입니다.');
            $('reg_bnet').activate();
            return false;
        }
    }
0
 
 
댓글 0개