diff --git a/i_login/j_login.php b/i_login/j_login.php new file mode 100644 index 00000000..9d2c3c79 --- /dev/null +++ b/i_login/j_login.php @@ -0,0 +1,43 @@ +isLoggedIn()){ + $SESSION->logout(); +} + +$username = util::array_get($_POST['username']); +$password = util::array_get($_POST['password']); + +if(!$username || !$password){ + returnJson([ + 'result'=>false, + 'reason'=>'올바르지 않은 입력입니다.' + ]); +} + +$userInfo = getRootDB()->queryFirstRow( + 'SELECT `no`, `id`, `name`, `grade` '. + 'from member where id=%s_username AND '. + 'pw=sha2(concat(salt, %s_password, salt), 512)',[ + 'username'=>$username, + 'password'=>$password +]); + +if(!$userInfo){ + returnJson([ + 'result'=>false, + 'reason'=>'아이디나 비밀번호가 올바르지 않습니다.' + ]); +} + +$SESSION->login($userInfo['no'], $userInfo['id'], $userInfo['grade']); +returnJson([ + 'result'=>true, + 'reason'=>'로그인 되었습니다.' +]); \ No newline at end of file diff --git a/index.php b/index.php index 1d959cb2..d0d8779c 100644 --- a/index.php +++ b/index.php @@ -2,9 +2,85 @@ require('_common.php'); require(ROOT.'/f_config/SETTING.php'); -if($SETTING->isExist()){ - header ("Location:i_login/login.php"); -} -else{ +if(!$SETTING->isExist()){ header ('Location:install.php'); + die(); } + +require(ROOT.'/f_config/DB.php'); +require(ROOT.'/f_func/class._Session.php'); + +$SESSION = new _SESSION(); + +use utilphp\util as util; + +if($SESSION->isLoggedIn()){ + header ('Location:i_entrance/entrance.php'); + die(); +} + +$access_token = $SESSION->get('access_token'); + + +?> + + + + + + + + 삼국지 모의전투 HiD 서버 + + + + + + + + + +
+

삼국지 모의전투 HiD

+
+
+
+

+ 로그인 +

+
+ +
+ + + +
+ +
+ +
+
+ + +
+ +
+ +
+
+ + +
+
+
+ +
+
+
+
+
+
+
+
+ + diff --git a/js/login.js b/js/login.js index e69de29b..d99ef56a 100644 --- a/js/login.js +++ b/js/login.js @@ -0,0 +1,62 @@ +$(document).ready( function () { + $( "#main_form" ).validate( { + rules: { + username: { + required: true + }, + password: { + required: true, + } + }, + messages: { + username: { + required: "유저명을 입력해주세요" + }, + password: { + required: "비밀번호를 입력해주세요" + } + }, + errorElement: "div", + errorPlacement: function ( error, element ) { + // Add the `help-block` class to the error element + error.addClass( "invalid-feedback" ); + + if ( element.prop( "type" ) === "checkbox" ) { + error.insertAfter( element.parent( "label" ) ); + } else { + error.insertAfter( element ); + } + }, + highlight: function ( element, errorClass, validClass ) { + $( element ).addClass( "is-invalid" ).removeClass( "is-valid" ); + }, + unhighlight: function (element, errorClass, validClass) { + $( element ).addClass( "is-valid" ).removeClass( "is-invalid" ); + } + } ); + + $( "#main_form" ).submit(function(){ + var raw_password = $('#password').val(); + var salt = $('#global_salt').val(); + var hash_pw = sha512(salt + raw_password + salt); + + $.post({ + url:'i_login/j_login.php', + dataType:'json', + data:{ + 'username':$('#username').val(), + 'password':hash_pw + } + }).then(function(obj){ + if(!obj.result){ + alert(obj.reason); + } + else{ + alert('로그인!'); + window.location.href = 'i_entrance/entrance.php'; + } + + }); + return false; + }); +} ); \ No newline at end of file