루트DB를 관리하는 방식을 통째로 변경

- DB 불러오는 방식을 기존의 set.php에서 conf.php의 getRootDB()를 이용하도록 변경
- ADODB 에 기반한 _DB 클래스 폐기
- DBS.php 폐기
- _Setting 클래스 용도 변경
- 서버 목록 정의 방식을 하나로 모음
- 로그인시 세션에 사용자 등급을 추가
- "참여"(donation) 관련 코드 전면 제거
- 서버 리셋시 부운영자 비밀번호 문제 수정
- 서버 오픈,닫힘 여부를 새 서버 목록 정의 방식에 따르도록 수정
- DBS.php가 폐기 되었으므로 서버 오픈시 기본 정보를 json으로 받아오도록 하기 위하여 기본 준비
-  기존에 남아있던 세부 서버 로그인 처리 파일을 제거(enterPost.php)
- DBS.php 삭제로 전콘 변경시에도 각 서버로 json 호출을 하도록 하는 방식으로 준비
- 전콘을 수동으로 서버에 올린뒤 처리할 수 있도록 하던 legacy 코드 제거
- general 테이블에서 userlevel 컬럼을 삭제하고, 세션에 기록된 userGrade를 이용하도록 변경
- 벌점 제한을 모든 유저 공통으로 하도록 수정
- 세부 서버 리셋을 json ajax로 처리하도록 준비
This commit is contained in:
2018-03-07 00:59:31 +09:00
parent e8a9f73611
commit 0c9be5c53f
115 changed files with 1169 additions and 2217 deletions
+1 -2
View File
@@ -20,7 +20,7 @@ function EntranceManage_Init() {
function EntranceManage_Update() {
Popup_Wait(function() {
PostJSON(
HOME+I+ENTRANCE+W+MANAGE+W+GET, {
HOME+I+ENTRANCE+W+MANAGE+W+'Get.php', {
},
function(response, textStatus) {
if(response.result == "SUCCESS") {
@@ -50,7 +50,6 @@ function EntranceManage_UpdateInfo(member) {
$("#EntranceManage_0010").text(member.grade);
$("#EntranceManage_001500").attr("src", member.picture0);
$("#EntranceManage_001501").attr("src", member.picture1);
$("#EntranceManage_0020").html(member.donation);
}
function EntranceManage_ChangePw() {
-2
View File
@@ -51,6 +51,4 @@ require_once('_common.php');
<font color=magenta>탈퇴신청시 1개월간 정보가 보존되며,
1개월간 재가입이 불가능합니다.</font></pre>
</div>
<div id="EntranceManage_0020">
</div>
</div>
+2 -39
View File
@@ -6,9 +6,8 @@ require_once(ROOT.W.F_CONFIG.W.SESSION.PHP);
// 외부 파라미터
$rs = $DB->Select('ID, NAME, GRADE, PICTURE', 'MEMBER', "NO='{$SESSION->NoMember()}'");
$member = $DB->Get($rs);
$db = getRootDB();
$member = $db->queryFirstRow('SELECT `ID`, `NAME`, `GRADE`, `PICTURE` FROM `MEMBER` WHERE `NO` = %i', $SESSION->NoMember());
$response['id'] = $member['ID'];
$response['name'] = $member['NAME'];
@@ -31,42 +30,6 @@ if($member['PICTURE'] == '') {
$response['picture1'] = '../d_pic/'.$member['PICTURE'];
}
$response['donation'] = '';
$rs = $DB->Select('DATE, AMOUNT, CUMUL', 'DONATION', "ID='{$member['ID']}'");
$count = $DB->Count($rs);
if($count > 0) {
$response['donation'] = '
<table id="EntranceManage_002000" class="bg0">
<th id="EntranceManage_00200000" class="bg2" colspan="4">참 여 기 록</th>
<tr>
<td class="EntranceManage_Sequence bg1">순번</td>
<td class="EntranceManage_Date bg1">일자</td>
<td class="EntranceManage_Amount bg1">금액</td>
<td class="EntranceManage_Cumul bg1">누적</td>
</tr>
';
$i = 1;
while($DB->HasNext($rs)) {
$donation = $DB->Next($rs);
$response['donation'] .= "
<tr>
<td class='EntranceManage_Sequence'>{$i}</td>
<td class='EntranceManage_Date'>{$donation['DATE']}</td>
<td class='EntranceManage_Amount'>{$donation['AMOUNT']}</td>
<td class='EntranceManage_Cumul'>{$donation['CUMUL']}</td>
</tr>
";
$i++;
}
$response['donation'] .= '
</table>
';
}
$response['result'] = 'SUCCESS';
sleep(1);
+13 -20
View File
@@ -2,17 +2,13 @@
require_once('_common.php');
require_once(ROOT.W.F_FUNC.W.'class._JSON.php');
require_once(ROOT.W.F_CONFIG.W.DB.PHP);
require_once(ROOT.W.F_CONFIG.W.'DBS'.PHP);
require_once(ROOT.W.F_CONFIG.W.SETTINGS.PHP);
require_once(ROOT.W.F_CONFIG.W.SESSION.PHP);
// 외부 파라미터
$respone = [];
$rs = $DB->Select('ID, PICTURE', 'MEMBER', "NO='{$SESSION->NoMember()}'");
$member = $DB->Get($rs);
$db = getRootDB();
$member = $db->queryFirstRow('SELECT ID, PICTURE FROM `MEMBER` WHERE `NO` = %i', $SESSION->NoMember());
@@ -38,21 +34,18 @@ if($dt == $rf) {
$response['msg'] = '1일 1회 변경 가능합니다!';
$response['result'] = 'FAIL';
} else {
$DB->Update('MEMBER', "PICTURE='', IMGSVR=0", "NO='{$SESSION->NoMember()}'");
if(file_exists($dest)){
@unlink($dest);
}
for($i=0; $i < $_serverCount; $i++) {
if($SETTINGS[$i]->IsExist()) {
$rs = $DBS[$i]->Select('IMG', 'game', "NO='1'");
$game = $DBS[$i]->Get($rs);
if($game['IMG'] > 0) {
// 엔장선택 제외하고 업데이트
$DBS[$i]->Update('general', "PICTURE='default.jpg', IMGSVR=0", "NPC=0 AND USER_ID='{$member['ID']}'");
}
}
$db->update('MEMBER', [
'PICTURE'=>'',
'IMGSVR'=>0,
], 'NO=%i', $SESSION->NoMember());
//TODO: 각 세부 서버가 '열린 경우' 이미지를 갱신하도록 처리
//Token을 받아 처리하는 형식이면 가능할듯.
/*
for($i=0; $i < ; $i++) {
Update('general', "PICTURE='default.jpg', IMGSVR=0", "NPC=0 AND USER_ID='{$member['ID']}'");
}
*/
$response['msg'] = '제거에 성공했습니다!';
$response['result'] = 'SUCCESS';
+8 -18
View File
@@ -1,8 +1,6 @@
<?php
require_once('_common.php');
require_once(ROOT.W.F_CONFIG.W.DB.PHP);
require_once(ROOT.W.F_CONFIG.W.'DBS'.PHP);
require_once(ROOT.W.F_CONFIG.W.SETTINGS.PHP);
require_once(ROOT.W.F_CONFIG.W.SESSION.PHP);
// 외부 파라미터
@@ -20,8 +18,8 @@ $imageType = $size[2];
$availableImageType = array('.jpg'=>IMAGETYPE_JPEG, '.png'=>IMAGETYPE_PNG, '.gif'=>IMAGETYPE_GIF);
$rs = $DB->Select('ID, PICTURE', 'MEMBER', "NO='{$SESSION->NoMember()}'");
$member = $DB->Get($rs);
$db = getRootDB();
$member = $db->queryFirstRow('SELECT `ID`, `PICTURE` FROM `MEMBER` WHERE `NO` = %i', $SESSION->NoMember());
$picName = $member['PICTURE'];
@@ -78,22 +76,14 @@ if(!is_uploaded_file($image['tmp_name'])) {
$response['msg'] = '업로드에 실패했습니다!';
$response['result'] = 'FAIL';
} else {
if(file_exists($old_path)){
@unlink($old_path);
}
$pic = "{$newPicName}?={$rf}";
$DB->Update('MEMBER', "PICTURE='{$pic}', IMGSVR=1", "NO='{$SESSION->NoMember()}'");
getRootDB()->update('MEMBER',[
'PICTURE' => $pic,
'IMGSVR' => 1
], 'NO=%i', $SESSION->NoMember());
for($i=0; $i < $_serverCount; $i++) {
if($SETTINGS[$i]->IsExist()) {
$rs = $DBS[$i]->Select('IMG', 'game', "NO='1'");
$game = $DBS[$i]->Get($rs);
if($game['IMG'] > 0) {
// 엔장선택 제외하고 업데이트
$DBS[$i]->Update('general', "PICTURE='{$pic}', IMGSVR=1", "NPC=0 AND USER_ID='{$member['ID']}'");
}
}
}
//TODO: 각 서버에도 전파
//Update('general', "PICTURE='{$pic}', IMGSVR=1", "NPC=0 AND USER_ID='{$member['ID']}'");
$response['msg'] = '업로드에 성공했습니다!';
$response['result'] = 'SUCCESS';
+3 -11
View File
@@ -2,8 +2,6 @@
require_once('_common.php');
require_once(ROOT.W.F_FUNC.W.'class._JSON.php');
require_once(ROOT.W.F_CONFIG.W.DB.PHP);
require_once(ROOT.W.F_CONFIG.W.'DBS'.PHP);
require_once(ROOT.W.F_CONFIG.W.SETTINGS.PHP);
require_once(ROOT.W.F_CONFIG.W.SESSION.PHP);
// 외부 파라미터
@@ -14,20 +12,14 @@ $newPw = $_POST['newPw'];
$response['result'] = 'FAIL';
$rs = $DB->Select('ID, PW', 'MEMBER', "NO='{$SESSION->NoMember()}'");
$member = $DB->Get($rs);
$db = getRootDB();
$member = $db->queryFirstRow('SELECT `ID`, `PW` FROM `MEMBER` WHERE `NO` = %i', $SESSION->NoMember());
if($member['PW'] != $pw) {
$response['result'] = 'FAIL';
$response['msg'] = '실패: 현재 비밀번호가 일치하지 않습니다.';
} else {
$DB->Update('MEMBER', "PW='{$newPw}'", "NO='{$SESSION->NoMember()}'");
for($i=0; $i < $_serverCount; $i++) {
if($SETTINGS[$i]->IsExist()) {
$DBS[$i]->Update('general', "PASSWORD='{$newPw}'", "USER_ID='{$member['ID']}'");
}
}
$db->update('MEMBER', ['PW'=>$newPw], 'NO=%i', $SESSION->NoMember());
$response['result'] = 'SUCCESS';
$response['msg'] = "정상적으로 비밀번호가 수정되었습니다.";
+4 -4
View File
@@ -11,17 +11,17 @@ $pw = $_POST['pw'];
$response['result'] = 'FAIL';
$rs = $DB->Select('PW', 'MEMBER', "NO='{$SESSION->NoMember()}'");
$member = $DB->Get($rs);
$db = getRootDB();
$member = $db->queryFirstRow('SELECT `PW` FROM `MEMBER` WHERE `NO` = %i', $SESSION->NoMember());
if($member['PW'] != $pw) {
$response['result'] = 'FAIL';
$response['msg'] = '실패: 현재 비밀번호가 일치하지 않습니다.';
} else {
$DB->UpdateArray('MEMBER', array(
$db->update('MEMBER', array(
'QUIT' => 'Y',
'REG_DATE'=> _Time::DatetimeNow()
), "NO='{$SESSION->NoMember()}'");
), 'NO=%i', $SESSION->NoMember());
$SESSION->Logout();