diff --git a/hwe/b_currentCity.php b/hwe/b_currentCity.php
index 539ab1d0..b9248710 100644
--- a/hwe/b_currentCity.php
+++ b/hwe/b_currentCity.php
@@ -97,9 +97,9 @@ if($me['level'] == 0) {
if($myNation['level'] > 0) {
// 첩보도시도 목록에 추가
$where = 'city=0';
- $cities = explode("|", $myNation['spy']);
- for($i=0; $i < count($cities); $i++) {
- $city = intdiv($cities[$i], 10);
+ $cities = array_map('intval',explode("|", $myNation['spy']));
+ foreach($cities as $citySpy) {
+ $city = intdiv($citySpy, 10);
$where .= " or city='{$city}'";
}
diff --git a/hwe/b_myCityInfo.php b/hwe/b_myCityInfo.php
index 004e30f1..581af22b 100644
--- a/hwe/b_myCityInfo.php
+++ b/hwe/b_myCityInfo.php
@@ -83,6 +83,9 @@ switch ($type) {
$cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$citycount = MYDB_num_rows($cityresult);
+$region = 0;
+$level = 0;
+
for ($j=0; $j < $citycount; $j++) {
$city = MYDB_fetch_array($cityresult);
if ($city['city'] == $nation['capital']) {
diff --git a/hwe/b_myKingdomInfo.php b/hwe/b_myKingdomInfo.php
index 67d7e1e4..95f3b77a 100644
--- a/hwe/b_myKingdomInfo.php
+++ b/hwe/b_myKingdomInfo.php
@@ -50,6 +50,8 @@ $query = "select city,name,pop,pop2 from city where nation='{$nation['nation']}'
$cityresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$citycount = MYDB_num_rows($cityresult);
+$totalpop = 0;
+$maxpop = 0;
for($j=0; $j < $citycount; $j++) {
$city = MYDB_fetch_array($cityresult);
if($city['city'] == $nation['capital']) { $cityname[$j] = "[{$city['name']}]"; }
diff --git a/hwe/c_auction.php b/hwe/c_auction.php
index fee2d8b7..a460c5ef 100644
--- a/hwe/c_auction.php
+++ b/hwe/c_auction.php
@@ -3,6 +3,26 @@ namespace sammo;
include "lib.php";
include "func.php";
+
+$v = new Validator($_POST + $_GET);
+$v->rule('integer', [
+ 'amount',
+ 'cost',
+ 'topv',
+ 'value',
+ 'term',
+ 'stuff',
+ 'sel'
+]);
+
+$amount = Util::getReq('amount', 'int');
+$cost = Util::getReq('cost', 'int');
+$topv = Util::getReq('topv', 'int');
+$value = Util::getReq('value', 'int');
+$term = Util::getReq('term', 'int');
+$stuff = Util::getReq('stuff', 'int');
+$sel = Util::getReq('sel', 'int');
+
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
diff --git a/hwe/c_betting.php b/hwe/c_betting.php
index 39537469..d073b653 100644
--- a/hwe/c_betting.php
+++ b/hwe/c_betting.php
@@ -4,48 +4,58 @@ namespace sammo;
include "lib.php";
include "func.php";
+
// $btn0~15, $gold0~15
+$betTarget = -1;
+$betGold = -1;
+for($i=0;$i<16;$i++){
+ $textBtn = "btn{$i}";
+ $textGold = "gold{$i}";
+ $btn = Util::getReq($textBtn);
+ $gold = Util::getReq($textGold, 'int');
+ if($btn === "베팅!" && $gold){
+ $betTarget = $i;
+ $betGold = $gold;
+ break;
+ }
+}
+
+if($betTarget < 0 || $betGold < 10 || $betGold > 1000){
+ header('Location: b_betting.php');
+ exit();
+}
+
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
-$connect=$db->get();
increaseRefresh("베팅", 1);
-$query = "select tournament,phase,tnmt_type,develcost from game limit 1";
-$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
-$admin = MYDB_fetch_array($result);
-
-if($admin['tournament'] != 6) {
- //echo "";
- echo 'b_betting.php';//TODO:debug all and replace
+$tournament = $db->queryFirstField('SELECT tournament FROM game LIMIT 1');
+if($tournament != 6) {
+ header('Location: b_betting.php');
exit();
}
-$query = "select gold,bet0,bet1,bet2,bet3,bet4,bet5,bet6,bet7,bet8,bet9,bet10,bet11,bet12,bet13,bet14,bet15,bet0+bet1+bet2+bet3+bet4+bet5+bet6+bet7+bet8+bet9+bet10+bet11+bet12+bet13+bet14+bet15 as bet from general where owner='{$userID}'";
-$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
-$me = MYDB_fetch_array($result);
+$bets = $db->queryFirstList('SELECT bet0,bet1,bet2,bet3,bet4,bet5,bet6,bet7,bet8,bet9,bet10,bet11,bet12,bet13,bet14,bet15,gold FROM general WHERE `owner`=%i', $userID);
+$myGold = array_pop($bets);
+$totalBet = array_sum($bets);
-for($i=0; $i < 16; $i++) {
- if(${"btn{$i}"} == "베팅!") {
- $gold = Util::toInt(${"gold{$i}"});
- $mebet = $me["bet{$i}"];
- if($gold >= 10 && $gold <= 1000) {
- if($gold + 500 <= $me['gold'] && $gold + $mebet <= 1000 && $gold + $me['bet'] <= 1000) {
- $query = "update general set gold=gold-'$gold',bet{$i}=bet{$i}+'$gold',betgold=betgold+'$gold' where owner='{$userID}'";
- MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
- $query = "update game set bet{$i}=bet{$i}+'$gold'";
- MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
- }
- }
- }
+//NOTE: 위 코드에서 $betTarget은 0~15의 정수임이 보장된다.
+$oldBet = $bets[$betTarget];
+if($betGold + 500 <= $myGold && $betGold + $oldBet <= 1000 && $betGold + $totalBet <= 1000) {
+ $db->update('general', [
+ 'gold'=>$db->sqleval('gold - %i', $betGold),
+ "bet{$betTarget}"=>$db->sqleval("bet{$betTarget} + %i", $betGold),
+ 'betgold'=>$db->sqleval('betgold + %i', $betGold)
+ ], 'owner = %i', $userID);
+ $db->update('game', [
+ "bet{$betTarget}"=>$db->sqleval("bet{$betTarget} + %i", $betGold)
+ ], true);
}
-?>
-
-
-b_betting.php
+header('location: b_betting.php');