장수 등록 / 빙의 코드 수정 (Validator, query), TM서버 추가 능력치 코드 이전

random 코드 버그 수정
일부 코드의 Session 참조 방식을 새롭게 추가한 방식으로 변경
This commit is contained in:
2018-04-05 00:34:40 +09:00
parent 3161ace557
commit 90a81c91c4
9 changed files with 314 additions and 298 deletions
+70 -63
View File
@@ -4,15 +4,15 @@ namespace sammo;
include "lib.php";
include "func.php";
$session = Session::requireLogin()->setReadOnly();
$face = $_POST['face'];//TODO: face를 user_id에서 general.no 값을 이용하도록 변경
$userID = Session::getUserID();
$connect = dbConn(true);
$userID = $session->userID;
$rootDB = RootDB::db();
//회원 테이블에서 정보확인
$query = "select no,id,picture,grade,name from MEMBER where no='$userID'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$member = MYDB_fetch_array($result);
$member = $rootDB->queryFirstRow('SELECT `no`, id, picture, grade, `name` FROM MEMBER WHERE no=%i', $userID);
if(!$member) {
MessageBox("잘못된 접근입니다!!!");
@@ -20,100 +20,107 @@ if(!$member) {
exit(1);
}
$date = date('Y-m-d H:i:s');
//등록정보
$query = "update MEMBER set reg_num=reg_num+1,reg_date='$date' where no='{$member['no']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$db = DB::db();
$connect = dbConn();
$npcid = "gen{$face}";
$query = "select no,npc,level from general where no='$face'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$npc = MYDB_fetch_array($result);
$npc = $db->queryFirstRow('SELECT `no`, `name`, `npc`, `level` FROM general WHERE `no`=%i', $face);
if(!$npc){
echo "<script>alert('선택한 장수가 없습니다!');</script>";
echo "<script>history.go(-1);</script>";
exit();
}
$npcID = $npc['no'];
########## 동일 정보 존재여부 확인. ##########
$query = "select year,month,maxgeneral,turnterm,genius,npcmode from game limit 1";
$result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$query = "select no from general where npc<2";
$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),"");
$gencount = MYDB_num_rows($result);
$query = "select no from general where owner='$userID'";
$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),"");
$id_num = MYDB_num_rows($result);
$admin = $db->queryFirstRow('SELECT year,month,maxgeneral,turnterm,genius,npcmode from game limit 1');
$gencount = $db->queryFirstField('SELECT count(`no`) FROM general WHERE noc<2');
$oldGeneral = $db->queryFirstField('SELECT `no` FROM general WHERE `owner`=%i', $userID);
if($admin['npcmode'] != 1) {
echo "<script>alert('잘못된 접근입니다!');</script>";
echo "<script>history.go(-1);</script>";
exit();
} elseif($id_num) {
}
if($oldGeneral) {
echo("<script>
window.alert('이미 등록하셨습니다!')
history.go(-1)
</script>");
exit;
} elseif($admin['maxgeneral'] <= $gencount) {
}
if($admin['maxgeneral'] <= $gencount) {
echo("<script>
window.alert('더이상 등록할 수 없습니다!')
history.go(-1)
</script>");
exit;
} elseif($npc['npc'] < 2) {
}
if($npc['npc'] < 2) {
echo("<script>
window.alert('이미 선택된 장수입니다!')
history.go(-1)
</script>");
exit;
} elseif($npc['npc'] != 2) {
}
if($npc['npc'] != 2) {
echo("<script>
window.alert('선택할 수 없는 NPC입니다!')
history.go(-1)
</script>");
exit;
/*
} elseif($npc['level'] >= 5) {
}
/*if($npc['level'] >= 5) {
echo("<script>
window.alert('수뇌부는 선택할 수 없습니다!')
history.go(-1)
</script>");
exit;
*/
} else {
$query = "
update general set
name2='{$member['name']}',
npc=1,
killturn=6,
mode=2,
map=0,
owner='$userID',
where no='{$npcid}'
";
MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),"");
$query = "select no,name from general where user_id='$id'";
$result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
$log[0] = "<C>●</>{$admin['month']}월:<Y>{$me['name']}</>의 육체에 <Y>{$member['name']}</>(이)가 <S>빙의</>됩니다!";
pushGeneralHistory($me, "<C>●</>{$admin['year']}{$admin['month']}월:<Y>{$me['name']}</>의 육체에 <Y>{$member['name']}</>(이)가 빙의되다.");
pushGenLog($me, $mylog);
pushGeneralPublicRecord($log, $admin['year'], $admin['month']);
$adminLog[0] = "가입 : {$me['name']} // {$id} // ".getenv("REMOTE_ADDR");
pushAdminLog($adminLog);
MYDB_close($connect);
} */
$db->update('general', [
'name2'=>$session->userName,
'npc'=>1,
'killturn'=>6,
'mode'=>2,
'map'=>0,
'owner'=>$userID
], 'no=%i and npc=2', $npcID);
$affected = $db->affectedRows();
if(!$affected){
echo("<script>
window.alert('정상적으로 회원 가입되었습니다. ID : $id');
</script>");
echo("<script>window.open('../i_other/help.php');</script>");
//echo("<script>location.replace('index.php');</script>");
echo 'index.php';//TODO:debug all and replace
window.alert('이미 선택된 장수입니다!')
history.go(-1)
</script>");
exit;
}
$me = [
'no'=>$npcID
];
$log[0] = "<C>●</>{$admin['month']}월:<Y>{$npc['name']}</>의 육체에 <Y>{$session->userName}</>(이)가 <S>빙의</>됩니다!";
pushGeneralHistory($me, "<C>●</>{$admin['year']}{$admin['month']}월:<Y>{$npc['name']}</>의 육체에 <Y>{$session->userName}</>(이)가 빙의되다.");
pushGenLog($me, $mylog);
pushGeneralPublicRecord($log, $admin['year'], $admin['month']);
$adminLog[0] = "가입 : {$session->userName} // {$id} // ".getenv("REMOTE_ADDR");
pushAdminLog($adminLog);
$rootDB->insert('member_log', [
'member_no' => $userID,
'date'=>date('Y-m-d H:i:s'),
'action_type'=>'make_general',
'action'=>Json::encode([
'server'=>DB::prefix(),
'type'=>'npc',
'generalID'=>$me['no'],
'generalName'=>$me['name']
])
]);
?>
<script>
window.alert('정상적으로 회원 가입되었습니다. ID : <?=$id?>');
</script>");
<script>window.open('../i_other/help.php');</script>