Game DB를 보시면 많은 테이블들이 있는데 각테이블이 어떤 데이터를 저장하는지에 관해서는 차후에 올리도록 하겠습니다..
오늘은 회원정보를 등록해야하니 회원테이블만..
회원정보 테이블은 "account_data" 입니다.
이테이블에 회원의 기본 정보가 등록됩니다.
테이블을 보면 다음과 같은 필드가 있습니다.
id : 회원의 고유번호
name : 로그인아이디
password : 비밀번호
activated : 계정상태(불럭과 같은 차단을 할때 사용됨 기본값은 1입니다.)
access_level : ( 회원레벨입니다.. 관리자 등급과 같은 권한 설정용 기본유저는 0입니다.)
membership : 영어그대로임.. 아마 프리섭등에서 vip회원등의 특권을 주기위해 만들어진 필드
old_membership : 동일 구버전용
last_server : 마지막 접속서버
list_ip : 사용자가 마지막 접속한 아이피
last_mac : 사용자가 마지막 접속한 맥주소(법적인 문제로 사용되지 않음)
ip_force : 자롬르겠음..
expire : 자로몰르겠음..
toll : 톨상점에서 사용되는 머니(톨)
위와 같이 설정되어있습니다..
다른건 그냥 입력해도 되지만 딱하나만은 암호화를 해서 등록해됩니다.
바로 비밀번호죠..
일반적인 숫자영문을 넣어도 된다면 편하겠지만...
아이온은 단반향 암호화(sha1)과 base64_encode를 사용하여 암호화를 합니다.
---- PHP로 비밀번호 만들기 ----
$passwordsha = sha1('사용자비번', true); //1차 암호화
$password = base64_encode($passwordsha); //2차 암호화
--------------------------
위와 같은 과정을 거쳐서 암호화를 합니다.
이런과정을 거쳐지기때문에.. 암호를 분실하게되면 확인 안되기때문에 초기화를 해줘야합니다.
기본적인 핵심은 끝났고..
이제 본격적인 화면구서을 해보겠습니다.
위 필드를 보시면 아시다 시피 이름을 받는 곳이 없습니다.
단순하게 아이디와 비밀번호만을 받을수있습니다..
실질적으로 아이온 본섭은 별도의 회원정보 테이블이 따로 있습니다..
하지만 프리섭에는 없어도 되는관계로 빠져있죠..(아마 본서버는 회원정보 서버가 따루 존제하리라 생각됩니다.)
html을 단순하게 구성을 한다면..
◁script language="javascript"▷
function joinch()
{
if(!document.joinform.name.value)
{
alert('아이디를 입력하세요.');
document.joinform.name.focus();
return false;
}
if(!document.joinform.password.value)
{
alert('비밀번호를 입력하세요.');
document.joinform.password.focus();
return false;
}
answer = confirm('등록하시겠습니까?');
if(answer==true)
{ document.joinform.submit(); }
else
{ return false; }
◁/script▷
◁b▷회원가입◁/b▷◁br▷◁br▷
◁form name="joinform" action="join.php" method="post" onSubmit="return joinch();"▷
◁input type='hidden' name='mode' value="w"▷
아이디 ◁input type="text" name="name" tabindex="1"▷◁br▷
비밀번호 ◁input type="password" name="password" tabindex="2"▷◁br▷
◁input type="submit" value="가입하기"▷
이렇케 하면될듯합니다.
위 < >를 쓸수없어 특수문자로 교체했습니다.
작성을 했으면 저장을 해야겠죠..
---join.php---
<?
$hostName = "localhost";
$userName = "------"; //DB 아이디
$userPassword = "----"; //DB 비번
$dbName = "게임서버DB"; //게임DB를 변경하신분은 역시 변경해주세요
$connect = @mysql_connect($hostName,$userName,$userPassword);
if(!$connect) {
$connect = @mysql_connect($hostName,$userName,$userPassword);
if(!$connect) {
echo "데이타베이스 연결실패";
exit;
}
}
$db = mysql_select_db($dbName);
if(!$db) {
$db = mysql_select_db($dbName);
{
echo "DB연결실패";
exit;
}
}
//----- 여기까지는 단순하게 DB를 연결하는 부분
$name = $_POST['name']; //입력받은 아이디
$password = $_POST['password']; //입력받은 비밀번호를 안호화처리~~
$passwordsha = sha1($password, true);
$password = base64_encode($passwordsha);
$activated ='1'; //가입후 바로사용하게 하기위해서는 1로 해야한다.
$ip = $_SERVER["REMOTE_ADDR"]; // 가입자 아이피
$qry = "INSERT INTO account_data (id ,name, password, activated, last_ip) VALUES('','$name','$password', '$activated' ,'$ip')";
$exe = mysql_query($qry); //위정보를 DB에 등록
if($exe){ echo $name.'로 가입완료했습니다..'; }
else{ echo $name.'로 가입실패하였습니다..'.'<br>'. $qry; }
exit;
}
?>
// 생각보다는 단순하죠.. 여기에 조금씩 응용하여 중복검사기능을 넣으면 됩니다..