입력한 아이디가 베틀넷에 존재하는 아이디인가 확인하는 회원가입 ajax

· 17년 전 · 3484
2008-12-07 15;36;38.jpg

제대로 작동하는 지는 위에 링크를 통해 확인해주세요.

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;
        }
    }


첨부파일

2008-12-07 15;36;38.jpg (54 KB)
0회 2008-12-07 15:48
|
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요. 나누면 즐거움이 커집니다.

+
제목 글쓴이 날짜 조회
17년 전 조회 2,356
17년 전 조회 4,180
17년 전 조회 9,896
17년 전 조회 3,095
17년 전 조회 3,855
17년 전 조회 2만
18년 전 조회 7,573
18년 전 조회 6,498
17년 전 조회 3,796
17년 전 조회 3,485
17년 전 조회 4,064
17년 전 조회 2,137
17년 전 조회 8,832
17년 전 조회 5,604
17년 전 조회 4,316
17년 전 조회 2,884
17년 전 조회 2,261
17년 전 조회 5,173
17년 전 조회 4,056
17년 전 조회 3,303
🐛 버그신고