입력한 아이디가 베틀넷에 존재하는 아이디인가 확인하는 회원가입 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개