SQL Injection 대응을 위해 파일 상단에 Util::getReq 사용

This commit is contained in:
2018-04-14 00:15:25 +09:00
parent be7154284e
commit 253a953dfe
21 changed files with 225 additions and 113 deletions
+1
View File
@@ -55,6 +55,7 @@ if ($con >= 2) {
<table align=center width=1000 border=1 cellspacing=0 cellpadding=0 bordercolordark=gray bordercolorlight=black style=font-size:13px;word-break:break-all; id=bg0>
<?php
if (isset($btn) && $btn == "NPC 보기") {
//FIXME: query가 너무 적나라.
$sel = "npc>=2";
} else {
$sel = "npc<2";
+31 -17
View File
@@ -3,6 +3,9 @@ namespace sammo;
include "lib.php";
include "func.php";
$type = Util::getReq('type', 'int', 9);
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
@@ -13,17 +16,20 @@ $connect=$db->get();
increaseRefresh("장수일람", 2);
$query = "select conlimit from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$admin = MYDB_fetch_array($result);
$query = "select con,turntime from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
$con = checkLimit($me['con'], $admin['conlimit']);
if($con >= 2) { printLimitMsg($me['turntime']); exit(); }
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
}
if(!isset($type) || $type == 0) {
if ($type <= 0 || $type > 15) {
$type = 9;
}
@@ -68,12 +74,12 @@ if(!isset($type) || $type == 0) {
$nationname = [];
$nationlevel = [];
$nationname[0] = "-";
foreach(getAllNationStaticInfo() as $nation){
foreach (getAllNationStaticInfo() as $nation) {
$nationname[$nation['nation']] = $nation['name'];
$nationlevel[$nation['nation']] = $nation['level'];
}
switch($type) {
switch ($type) { //FIXME: $query 처리 조심.
case 1: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by nation"; break;
case 2: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by leader desc"; break;
case 3: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by power desc"; break;
@@ -82,6 +88,7 @@ switch($type) {
case 6: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by dedication desc"; break;
case 7: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by level desc"; break;
case 8: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by killturn"; break;
default:
case 9: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by connect desc"; break;
case 10: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by experience desc"; break;
case 11: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by personal"; break;
@@ -90,7 +97,7 @@ switch($type) {
case 14: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by age desc"; break;
case 15: $query = "select picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by npc desc"; break;
}
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$gencount = MYDB_num_rows($genresult);
echo"
@@ -112,24 +119,24 @@ echo"
<td width=45 align=center id=bg1>삭턴</td>
<td width=84 align=center id=bg1>벌점</td>
</tr>";
for($j=0; $j < $gencount; $j++) {
for ($j=0; $j < $gencount; $j++) {
$general = MYDB_fetch_array($genresult);
$nation = $nationname[$general['nation']];
if($general['level'] == 12) {
if ($general['level'] == 12) {
$lbonus = $nationlevel[$general['nation']] * 2;
} elseif($general['level'] >= 5) {
} elseif ($general['level'] >= 5) {
$lbonus = $nationlevel[$general['nation']];
} else {
$lbonus = 0;
}
if($lbonus > 0) {
if ($lbonus > 0) {
$lbonus = "<font color=cyan>+{$lbonus}</font>";
} else {
$lbonus = "";
}
if($general['injury'] > 0) {
if ($general['injury'] > 0) {
$leader = intdiv($general['leader'] * (100 - $general['injury']), 100);
$power = intdiv($general['power'] * (100 - $general['injury']), 100);
$intel = intdiv($general['intel'] * (100 - $general['injury']), 100);
@@ -142,9 +149,13 @@ for($j=0; $j < $gencount; $j++) {
$intel = "{$general['intel']}";
}
if($general['npc'] >= 2) { $name = "<font color=cyan>{$general['name']}</font>"; }
elseif($general['npc'] == 1) { $name = "<font color=skyblue>{$general['name']}</font>"; }
else { $name = "{$general['name']}"; }
if ($general['npc'] >= 2) {
$name = "<font color=cyan>{$general['name']}</font>";
} elseif ($general['npc'] == 1) {
$name = "<font color=skyblue>{$general['name']}</font>";
} else {
$name = "{$general['name']}";
}
$general['connect'] = Util::round($general['connect'] / 10) * 10;
@@ -160,12 +171,15 @@ for($j=0; $j < $gencount; $j++) {
<td align=center>{$nation}</td>
<td align=center>".getHonor($general['experience'])."</td>
<td align=center>".getDed($general['dedication'])."</td>
<td align=center>"; echo getLevel($general['level']); echo "</td>
<td align=center>";
echo getLevel($general['level']);
echo "</td>
<td align=center>$leader</td>
<td align=center>$power</td>
<td align=center>$intel</td>
<td align=center>{$general['killturn']}</td>
<td align=center>{$general['connect']}"; echo "<br>【".getConnect($general['connect'])."】</td>
<td align=center>{$general['connect']}";
echo "<br>【".getConnect($general['connect'])."】</td>
</tr>";
}
echo "
+3 -3
View File
@@ -4,7 +4,7 @@ namespace sammo;
include "lib.php";
include "func.php";
$btn = Util::getReq('btn');
$yearmonth = Util::getReq('yearmonth');
$yearmonth = Util::getReq('yearmonth', 'int');
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
@@ -44,8 +44,8 @@ if (!$yearmonth) {
$year = $admin['year'];
$month = $admin['month'] - 1;
} else {
$year = substr($yearmonth, 0, 3) - 0;
$month = substr($yearmonth, 3, 2) - 0;
$year = intdiv($yearmonth, 100);
$month = $yearmonth % 100;
if ($btn == "◀◀ 이전달") {
$month -= 1;
+16 -10
View File
@@ -6,14 +6,15 @@ include "func.php";
$type = Util::getReq('type', 'int', 1);
if($type <= 0 || $type > 8){
$type = 1;
}
$db = DB::db();
$connect=$db->get();
increaseRefresh("빙의일람", 2);
if($type == 0) {
$type = 1;
}
$sel = [];
$sel[$type] = "selected";
@@ -49,11 +50,12 @@ $sel[$type] = "selected";
<?php
$nationname = [];
$nationname[0] = "-";
foreach(getAllNationStaticInfo() as $nation){
foreach (getAllNationStaticInfo() as $nation) {
$nationname[$nation['nation']] = $nation['name'];
}
switch($type) {
switch ($type) {//FIXME: $query 처리 부실
default:
case 1: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by binary(name)"; break;
case 2: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by nation"; break;
case 3: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by sum desc"; break;
@@ -63,7 +65,7 @@ switch($type) {
case 7: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by experience"; break;
case 8: $query = "select npc,nation,name,name2,special,special2,personal,leader,power,intel,leader+power+intel as sum,explevel,experience,dedication from general where npc=1 order by dedication"; break;
}
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$gencount = MYDB_num_rows($genresult);
echo"
@@ -82,13 +84,17 @@ echo"
<td width=78 align=center id=bg1>명성</td>
<td width=78 align=center id=bg1>계급</td>
</tr>";
for($j=0; $j < $gencount; $j++) {
for ($j=0; $j < $gencount; $j++) {
$general = MYDB_fetch_array($genresult);
$nation = $nationname[$general['nation']];
if($general['npc'] >= 2) { $name = "<font color=cyan>{$general['name']}</font>"; }
elseif($general['npc'] == 1) { $name = "<font color=skyblue>{$general['name']}</font>"; }
else { $name = "{$general['name']}"; }
if ($general['npc'] >= 2) {
$name = "<font color=cyan>{$general['name']}</font>";
} elseif ($general['npc'] == 1) {
$name = "<font color=skyblue>{$general['name']}</font>";
} else {
$name = "{$general['name']}";
}
echo "
<tr>
+1
View File
@@ -340,6 +340,7 @@ function getVoteColor($type)
}
switch ($type) {
default:
case 0: $color = "black"; break;
case 1: $color = "red"; break;
case 2: $color = "orange"; break;
+4 -3
View File
@@ -9,8 +9,8 @@ $v->rule('required', 'gen')
->rule('integer', 'gen');
$btn = Util::getReq('btn');
$gen = Util::getReq('gen', 'int');
$type = Util::getReq('type', 'int');
$gen = Util::getReq('gen', 'int', 0);
$type = Util::getReq('type', 'int', 0);
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
@@ -61,7 +61,7 @@ if ($btn == '정렬하기') {
$gen = 0;
}
if ($type == 0) {
if ($type <= 0 || $type > 3) {
$type = 0;
}
$sel = [];
@@ -96,6 +96,7 @@ $sel[$type] = "selected";
<select name=gen size=1>
<?php
switch ($type) {
default:
case 0: $query = "select no,name from general where nation='{$me['nation']}' order by turntime desc"; break;
case 1: $query = "select no,name from general where nation='{$me['nation']}' order by recwar desc"; break;
case 2: $query = "select no,name from general where nation='{$me['nation']}' order by npc,binary(name)"; break;
+2
View File
@@ -28,6 +28,7 @@ if ($con >= 2) {
}
switch ($admin['tnmt_type']) {
default: throw new \RuntimeException('Invalid tnmt_type');break;
case 0: $tnmt_type = "<font color=cyan>전력전</font>"; $tp = "tot"; $tp2 = "종합"; $tp3 = "total"; break;
case 1: $tnmt_type = "<font color=cyan>통솔전</font>"; $tp = "ldr"; $tp2 = "통솔"; $tp3 = "leader"; break;
case 2: $tnmt_type = "<font color=cyan>일기토</font>"; $tp = "pwr"; $tp2 = "무력"; $tp3 = "power"; break;
@@ -96,6 +97,7 @@ $query = "select npc,name,win from tournament where grp>=50 order by grp, grp_no
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$cent = [];
$line = [];
$gen = [];
for ($i=0; $i < 1; $i++) {
$cent[$i] = "<font color=white>";
}
+2 -2
View File
@@ -4,7 +4,7 @@ namespace sammo;
include "lib.php";
include "func.php";
$type = Util::getReq('type', 'int');
$type = Util::getReq('type', 'int', 7);
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
@@ -38,7 +38,7 @@ if ($me['level'] == 0 || ($me['level'] == 1 && $me['belong'] < $nation['secretli
exit();
}
if ($type == 0) {
if ($type <= 0 || $type > 8) {
$type = 7;
}
$sel = [];
+4 -1
View File
@@ -3,6 +3,9 @@ namespace sammo;
include "lib.php";
include "func.php";
$type = Util::getReq('type', 'int', 10);
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
@@ -21,7 +24,7 @@ if ($me['level'] == 0) {
exit();
}
if ($type == 0) {
if ($type <= 0 || $type > 12) {
$type = 10;
}
$sel = [$type => "selected"];
+2 -2
View File
@@ -4,7 +4,7 @@ namespace sammo;
include "lib.php";
include "func.php";
$type = Util::getReq('type', 'int');
$type = Util::getReq('type', 'int', 1);
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
@@ -25,7 +25,7 @@ if($me['level'] == 0) {
}
if($type == 0) {
if($type <= 0 || $type > 15) {
$type = 1;
}
$sel = [$type => "selected"];
+15
View File
@@ -5,6 +5,21 @@ include "lib.php";
include "func.php";
$btn = Util::getReq('btn');
$map = Util::getReq('map', 'int', 0);
$mode = Util::getReq('mode', 'int', 2);
$tnmt = Util::getReq('tnmt', 'int', 1);
if($map < 0 && $map > 2){
$map = 0;
}
if($mode < 0 && $mode > 2){
$mode = 2;
}
if($tnmt < 0 && $tnmt > 1){
$tnmt = 1;
}
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
+2
View File
@@ -28,6 +28,7 @@ if ($con >= 2) {
}
switch ($admin['tnmt_type']) {
default: throw new \RuntimeException('invalid tnmt_type');
case 0: $tnmt_type = "<font color=cyan>전력전</font>"; $tp = "tot"; $tp2 = "종합"; $tp3 = "total"; break;
case 1: $tnmt_type = "<font color=cyan>통솔전</font>"; $tp = "ldr"; $tp2 = "통솔"; $tp3 = "leader"; break;
case 2: $tnmt_type = "<font color=cyan>일기토</font>"; $tp = "pwr"; $tp2 = "무력"; $tp3 = "power"; break;
@@ -219,6 +220,7 @@ for ($i=0; $i < 1; $i++) {
$cent[$i] = "<font color=white>";
}
$line = [];
$gen = [];
for ($i=0; $i < 2; $i++) {
//FIXME: 다시 작성. null인 경우엔 어쩌려고?
$general = MYDB_fetch_array($result) ?? [
+1
View File
@@ -7,6 +7,7 @@ include "func.php";
// $btn0~15, $gold0~15
//FIXME: 으악!!!!! 왜?! idx를 지정하고 gold를 지정하라고!
$betTarget = -1;
$betGold = -1;
for($i=0;$i<16;$i++){
+32 -29
View File
@@ -17,39 +17,42 @@ $userID = Session::getUserID();
$db = DB::db();
$connect=$db->get();
if(getBlockLevel() != 1 && getBlockLevel() != 3) {
$query = "select no,nation from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
if (getBlockLevel() == 1 || getBlockLevel() == 3) {
header('location:b_chiefboard.php');
die();
}
$title = str_replace("|", " ", $title);
$msg = str_replace("|", " ", $msg);
$reply = str_replace("|", " ", $reply);
$title = trim($title);
$msg = trim($msg);
$reply = trim($reply);
$query = "select no,nation from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$me = MYDB_fetch_array($result);
$nation = getNation($me['nation']);
$title = str_replace("|", " ", $title);
$msg = str_replace("|", " ", $msg);
$reply = str_replace("|", " ", $reply);
$title = trim($title);
$msg = trim($msg);
$reply = trim($reply);
//새글 추가시
if($num == -1 && $title != "" && $msg != "") {
$num = $nation['coreindex'] + 1;
if($num >= 20) { $num = 0; }
$msg = $title."|".$msg;
$msg = addslashes(SQ2DQ($msg));
$date = date('Y-m-d H:i:s');
$query = "update nation set coreboard{$num}='$msg',coreboard{$num}_who='{$me['no']}',coreboard{$num}_when='$date' where nation='{$me['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update nation set coreindex='$num' where nation='{$me['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//$num에 댓글시
} elseif($num >= 0 && $reply != "") {
$newmsg = $nation["coreboard{$num}"]."|".$me['no']."|".$reply;
$newmsg = addslashes(SQ2DQ($newmsg));
$nation = getNation($me['nation']);
$query = "update nation set coreboard{$num}='$newmsg' where nation='{$me['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
//새글 추가시
if($num == -1 && $title != "" && $msg != "") {
$num = $nation['coreindex'] + 1;
if($num >= 20) { $num = 0; }
$msg = $title."|".$msg;
$msg = addslashes(SQ2DQ($msg));
$date = date('Y-m-d H:i:s');
$query = "update nation set coreboard{$num}='$msg',coreboard{$num}_who='{$me['no']}',coreboard{$num}_when='$date' where nation='{$me['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update nation set coreindex='$num' where nation='{$me['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
//$num에 댓글시
} elseif($num >= 0 && $reply != "") {
$newmsg = $nation["coreboard{$num}"]."|".$me['no']."|".$reply;
$newmsg = addslashes(SQ2DQ($newmsg));
$query = "update nation set coreboard{$num}='$newmsg' where nation='{$me['nation']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
header('location:b_chiefboard.php');
-3
View File
@@ -33,9 +33,6 @@ if($command < 0) { $command = 0; }
if($double < 0) { $double = 0; }
if($third < 0) { $third = 0; }
if($fourth < 0) { $fourth = 0; }
$double = Util::round($double);
$third = Util::round($third);
$fourth = Util::round($fourth);
if($command > 99) { $command = 0; }
if($double > 9999) { $double = 9999; }
if($third > 9999) { $third = 9999; }
+10
View File
@@ -43,6 +43,11 @@ if($btn == "임명") {
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
if(!$general){
header('location:b_myBossInfo.php');
exit();
}
//임명할사람이 군주이면 불가, 내가 수뇌부이어야함, 공석아닌때는 국가가 같아야함
if($general['level'] == 12 || $meLevel < 5 || ($general['nation'] != $me['nation'] && $genlist != 0)) {
@@ -54,6 +59,11 @@ if($btn == "임명") {
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
if(!$general){
header('location:b_myBossInfo.php');
exit();
}
//추방할사람이 군주이면 불가, 내가 수뇌부이어야함, 공석아닌때는 국가가 같아야함
if($general['level'] == 12 || $meLevel < 5 || ($general['nation'] != $me['nation'] && $outlist != 0)) {
header('location:b_myBossInfo.php');
+1
View File
@@ -4,6 +4,7 @@ namespace sammo;
include "lib.php";
include "func.php";
// $msg
$msg = Util::getReq('msg');
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
+91 -37
View File
@@ -6,12 +6,13 @@ include "func.php";
// $btn, $msg
$btn = Util::getReq('btn');
$msg = Util::getReq('msg');
$gen = Util::getReq('gen', 'int');
$sel = Util::getReq('sel', 'int');
//관리자용
$auto = Util::getReq('gen', 'int');
$auto = Util::getReq('auto', 'int');
$type = Util::getReq('type', 'int');
$gen = Util::getReq('gen', 'int');
$sel = Util::getReq('sel', 'int');
$trig = Util::getReq('trig', 'int');
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
@@ -35,22 +36,71 @@ case 2: $tp = "power"; $tp2 = "일기토"; $tp3 = "power"; break;
case 3: $tp = "intel"; $tp2 = "설전"; $tp3 = "intel"; break;
}
if($me['tournament'] == 1 && $session->userGrade < 5) {
header('locatoin:b_tournament.php');
if($btn == '참가') {
$query = "select no,name,npc,leader,power,intel,explevel,gold,horse,weap,book from general where no='{$me['no']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
//{$admin['develcost']}원 참가비
if($general['gold'] < $admin['develcost']) {
header('location:b_tournament.php');
exit(1);
}
$general['gold'] -= $admin['develcost'];
$query = "select grp from tournament where grp<10 group by grp having count(*)=8";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$grpCount = MYDB_num_rows($result);
$occupied = [];
for($i=0; $i < $grpCount; $i++) {
$grp = MYDB_fetch_array($result);
$occupied[$grp['grp']] = 1;
}
$map = [];
for($i=0; $i < 8; $i++) {
if($occupied[$i] == 0) {
$map[] = $i;
}
}
if($grpCount < 8) {
$grp = $map[rand() % count($map)];
$query = "select grp from tournament where grp='$grp'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$grpCount = MYDB_num_rows($result);
$query = "insert into tournament (no, npc, name, ldr, pwr, itl, lvl, grp, grp_no, h, w, b) values ('{$general['no']}', '{$general['npc']}', '{$general['name']}', '{$general['leader']}', '{$general['power']}', '{$general['intel']}', '{$general['explevel']}', '$grp', '$grpCount', '{$general['horse']}', '{$general['weap']}', '{$general['book']}')";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$query = "update general set tournament=1,gold='{$general['gold']}' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
$query = "select grp from tournament where grp<10 group by grp having count(*)=8";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$grpCount = MYDB_num_rows($result);
if($grpCount >= 8) {
$query = "update game set tournament=2, phase=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
header('location:b_tournament.php');
die();
}
if($session->userGrade < 5) {
header('location:b_tournament.php');
exit();
}
if($btn == "자동개최설정" && $session->userGrade >= 5) {
if($btn == "자동개최설정") {
$db->update('game', ['tnmt_trig'=>$trig], true);
} elseif($btn == "개최" && $session->userGrade >= 5) {
} elseif($btn == "개최") {
startTournament($auto, $type);
} elseif($btn == "중단" && $session->userGrade >= 5) {
} elseif($btn == "중단") {
$db->update('game', [
'tnmt_auto'=>0,
'tournament'=>0,
'phase'=>0
], true);
} elseif((($btn == "투입" || $btn == "무명투입" || $btn == "쪼렙투입" || $btn == "일반투입" || $btn == "굇수투입" || $btn == "랜덤투입") && $session->userGrade >= 5) || $btn == "참가") {
} elseif($btn == "투입" || $btn == "무명투입" || $btn == "쪼렙투입" || $btn == "일반투입" || $btn == "굇수투입" || $btn == "랜덤투입") {
if($btn == "투입") {
$query = "select no,name,npc,leader,power,intel,explevel,gold,horse,weap,book from general where no='$gen'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -100,17 +150,6 @@ if($btn == "자동개최설정" && $session->userGrade >= 5) {
$general = MYDB_fetch_array($result);
$general['gold'] -= $admin['develcost'];
//참가
} else {
$query = "select no,name,npc,leader,power,intel,explevel,gold,horse,weap,book from general where no='{$me['no']}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
//{$admin['develcost']}원 참가비
if($general['gold'] < $admin['develcost']) {
header('location:b_tournament.php');
exit(1);
}
$general['gold'] -= $admin['develcost'];
}
$query = "select grp from tournament where grp<10 group by grp having count(*)=8";
@@ -146,7 +185,8 @@ if($btn == "자동개최설정" && $session->userGrade >= 5) {
$query = "update game set tournament=2, phase=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
} elseif(($btn == "쪼렙전부투입" || $btn == "일반전부투입" || $btn == "굇수전부투입" || $btn == "랜덤전부투입") && $session->userGrade >= 5) {
} elseif($btn == "쪼렙전부투입" || $btn == "일반전부투입" || $btn == "굇수전부투입" || $btn == "랜덤전부투입") {
$z = 0;
$code = [];
for($i=0; $i < 8; $i++) {
@@ -201,25 +241,39 @@ if($btn == "자동개최설정" && $session->userGrade >= 5) {
$query = "update game set tournament=2, phase=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
} elseif($btn == "무명전부투입" && $session->userGrade >= 5) { fillLowGenAll();
} elseif($btn == "예선" && $session->userGrade >= 5) { qualify($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "예선전부" && $session->userGrade >= 5) { qualifyAll($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "추첨" && $session->userGrade >= 5) { selection($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "추첨전부" && $session->userGrade >= 5) { selectionAll($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "본선" && $session->userGrade >= 5) { finallySingle($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "본선전부" && $session->userGrade >= 5) { finallyAll($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "배정" && $session->userGrade >= 5) { final16set();
} elseif($btn == "베팅마감" && $session->userGrade >= 5) {
} elseif($btn == "무명전부투입") {
fillLowGenAll();
} elseif($btn == "예선") {
qualify($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "예선전부") {
qualifyAll($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "추첨") {
selection($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "추첨전부") {
selectionAll($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "본선") {
finallySingle($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "본선전부") {
finallyAll($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "배정") {
final16set();
} elseif($btn == "베팅마감") {
$dt = date("Y-m-d H:i:s", time() + 60);
$query = "update game set tournament='7',phase='0',tnmt_time='$dt'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
} elseif($btn == "16강" && $session->userGrade >= 5) { finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 16);
} elseif($btn == "8강" && $session->userGrade >= 5) { finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 8);
} elseif($btn == "4" && $session->userGrade >= 5) { finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 4);
} elseif($btn == "결승" && $session->userGrade >= 5) { finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 2);
} elseif($btn == "포상" && $session->userGrade >= 5) { setGift($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "회수" && $session->userGrade >= 5) { setRefund();
} elseif($btn == "메시지" && $session->userGrade >= 5) {
} elseif($btn == "16강") {
finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 16);
} elseif($btn == "8") {
finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 8);
} elseif($btn == "4강") {
finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 4);
} elseif($btn == "결승") {
finalFight($admin['tnmt_type'], $admin['tournament'], $admin['phase'], 2);
} elseif($btn == "포상") {
setGift($admin['tnmt_type'], $admin['tournament'], $admin['phase']);
} elseif($btn == "회수") {
setRefund();
} elseif($btn == "메시지") {
$msg = addslashes(SQ2DQ($msg));
$query = "update game set tnmt_msg='$msg'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
-1
View File
@@ -17,7 +17,6 @@ $db = DB::db();
$me = $db->queryFirstRow('SELECT `no`, nation, troop FROM general WHERE `owner`=%i', $userID);
$name = trim($name);
$name = addslashes(SQ2DQ($name));
if($btn == "부 대 창 설" && $name != "" && $me['troop'] == 0) {
$db->insert('troop',[
'name'=>$name,
+2
View File
@@ -10,6 +10,8 @@ include "lib.php";
include "func.php";
//로그인 검사
$gen = Util::getReq('gen', 'int');
$session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
//FIXME: 망했음. CriticalFailure. 재 구현.
+5 -5
View File
@@ -53,8 +53,6 @@ $leader = Util::getReq('leader', 'int', 50);
$power = Util::getReq('power', 'int', 50);
$intel = Util::getReq('intel', 'int', 50);
$mylog = [];
$rootDB = RootDB::db();
//회원 테이블에서 정보확인
$member = $rootDB->queryFirstRow('SELECT `no`, id, picture, grade, `name` FROM MEMBER WHERE no=%i', $userID);
@@ -179,7 +177,7 @@ if ($lastconnect >= $turntime) {
}
//특회 전콘
if ($admin['show_img_level'] >= 1 && $member['grade'] >= 1 && $member['picture'] != "" && $pic == 1) {
if ($admin['show_img_level'] >= 1 && $member['grade'] >= 1 && $member['picture'] != "" && $pic) {
$face = $member['picture'];
$imgsvr = $member['imgsvr'];
} else {
@@ -235,12 +233,14 @@ $me = [
'no'=>$generalID
];
$log = [];
$mylog = [];
if ($genius) {
$log[0] = "<C>●</>{$admin['month']}월:<G><b>{$cityname}</b></>에서 <Y>{$name}</>(이)라는 기재가 천하에 이름을 알립니다.";
$log[1] = "<C>●</>{$admin['month']}월:<C>".getGenSpecial($special2)."</> 특기를 가진 <C>천재</>의 등장으로 온 천하가 떠들썩합니다.";
$history[0] = "<C>●</>{$admin['year']}{$admin['month']}월:<L><b>【천재】</b></><G><b>{$cityname}</b></>에 천재가 등장했습니다.";
pushWorldHistory($history, $admin['year'], $admin['month']);
pushWorldHistory(["<C>●</>{$admin['year']}{$admin['month']}월:<L><b>【천재】</b></><G><b>{$cityname}</b></>에 천재가 등장했습니다."], $admin['year'], $admin['month']);
} else {
$log[0] = "<C>●</>{$admin['month']}월:<G><b>{$cityname}</b></>에서 <Y>{$name}</>(이)라는 호걸이 천하에 이름을 알립니다.";
}