From dada8c352126d1cd29be68797300ba649e3abb6b Mon Sep 17 00:00:00 2001 From: "Igor Barkov (iwork)" Date: Tue, 29 Sep 2020 13:07:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D0=B8=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=BD=D0=B5=D1=81=D0=B5=D0=BD=D1=8B=20=D0=B2=20con?= =?UTF-8?q?fig.php;=20Cannot=20use=20object=20of=20type=20User=20as=20arra?= =?UTF-8?q?y.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clan_create.php | 80 +++++++++++++++++++++++------------------------- classes/Bank.php | 21 +++++++++++-- config.php | 5 +++ main.php | 1 + 4 files changed, 63 insertions(+), 44 deletions(-) diff --git a/clan_create.php b/clan_create.php index 93badbb..7575459 100644 --- a/clan_create.php +++ b/clan_create.php @@ -2,20 +2,51 @@ session_start(); if (empty($_SESSION['uid'])) { header("Location: index.php"); + exit; } -include "config.php"; -include "functions.php"; -if ($user['room'] != 30) { +require_once 'functions.php'; +$user = $user ?? []; +if ($user->room != 30) { header("Location: main.php"); + exit; } - -//$klanName = filter_input(INPUT_POST, 'klanname'); -//$klanAbbr = filter_input(INPUT_POST, 'klanabbr'); -//$klanDescr = filter_input(INPUT_POST, 'klandescr'); $klanName = $_POST['klanname'] ?? ''; $klanAbbr = $_POST['klanabbr'] ?? ''; $klanDescr = $_POST['klandescr'] ?? ''; +if ($klanName && $klanAbbr && $klanDescr) { + + $eff = db::c()->query('SELECT 1 FROM `effects` WHERE `owner` = ?i AND `type` = 20', $user->id); + $name_check = db::c()->query('SELECT 1 FROM `clans` WHERE `name` = "?s" OR `short` = "?s"', 111, 333); + $errorMessage = ''; + + if ($user->align) { + $errorMessage .= 'Вы уже имеете направленность!.
'; + } + if ($user->clan) { + $errorMessage .= 'Вы уже состоите в клане!.
'; + } + if (10000 >= $user->money) { + $errorMessage .= 'Не хватает денег на регистрацию клана.
'; + } + if (!$eff) { + $errorMessage .= 'Нет проверки.
'; + } + if (!$name_check) { + $errorMessage .= 'Клан с такими данными уже существует.
'; + } + + if (!$errorMessage && !Config::$clan_register_lock) { +// db::c()->query('INSERT INTO `reg_klan` (owner, name, abr, descr) VALUES (?i,"?s","?s","?s")', +// $user->id, $klanName, $klanAbbr, $klanDescr); + $user->money -= Config::$clan_register_cost; + Bank::setBankMoney($user->money, $user->id); + echo 'Заявка на регистрацию клана подана.'; + err('Проверки пройдены, но клан регистрировать пока нельзя!'); + } else { + err($errorMessage); + } +} ?> @@ -33,40 +64,7 @@ $klanDescr = $_POST['klandescr'] ?? '';

Регистратура кланов

← выйти из регистратуры query('SELECT 1 FROM `effects` WHERE `owner` = ?i AND `type` = 20', $user['id']); - $name_check = db::c()->query('SELECT 1 FROM `clans` WHERE `name` = "?s" OR `short` = "?s"', 111, 333); - - if (!empty($user['align'])) { - $error .= 'Вы уже имеете направленность!.
'; - } - if (!empty($user['klan'])) { - $error .= 'Вы уже состоите в клане!.
'; - } - if (10000 >= $user['money']) { - $error .= 'Не хватает денег на регистрацию клана.
'; - } - if (!$eff) { - $error .= 'Нет проверки.
'; - } - if (!$name_check) { - $error .= 'Клан с такими данными уже существует.
'; - } - - if (!$error) { - /*TODO: Класс банковского перевода.*/ -// db::c()->query('INSERT INTO `reg_klan` (owner, name, abr, descr) VALUES (?i,"?s","?s","?s")', -// $user['id'], $klanName, $klanAbbr, $klanDescr); -// db::c()->query('UPDATE `users` SET `money` = `money` - 10000 WHERE `id` = ?i', $user['id']); -// err('Вам прийдет извещение о результате регистрации клана.'); - err('Проверки пройдены, но клан регистрировать пока нельзя!'); - } else { - err($error); - } -} - -if ($user['admin'] == '1') { +if ($user->admin) { $clanreg = db::c()->query('SELECT `date`,`name`,`abbr`,`owner`,`descr` FROM `reg_klan`'); echo ''; while ($clanreg_row = $clanreg->fetch_assoc()) { diff --git a/classes/Bank.php b/classes/Bank.php index 5646155..cf8a999 100644 --- a/classes/Bank.php +++ b/classes/Bank.php @@ -11,8 +11,6 @@ class Bank public $money; private $user; - public const BANK_COMISSION = 0.05; //5% - const ERROR_NO_MONEY_IN_WALLET = "Ошибка! Нет денег в кошельке!"; const ERROR_NO_BANK_ACCOUNT = "Ошибка! Счёта не существует!"; const ERROR_NO_MONEY_IN_BANK_ACCOUNT = "Ошибка! Нет денег на счету!"; @@ -47,7 +45,7 @@ class Bank */ private function bankComission($amount) { - $bankComission = round($amount * self::BANK_COMISSION); + $bankComission = round($amount * Config::$bank_comission); if ($bankComission < 1) { return 1; } else { @@ -165,10 +163,27 @@ class Bank $this->bankLogs(0, $amount, "withdrawMoney"); } + /** + * Установить количество денег на банковском счету. + * + * @param int $amount - сумма. + * @param int $user_id - ID пользователя. + * + * @throws \Krugozor\Database\Mysql\Exception + */ public static function setBankMoney(int $amount, int $user_id): void { db::c()->query('UPDATE bank SET money = ?i WHERE `id` = ?i', $amount, $user_id); } + + /** + * Установить количество денег на руках. + * + * @param int $amount - сумма. + * @param int $user_id - ID пользователя. + * + * @throws \Krugozor\Database\Mysql\Exception + */ public static function setWalletMoney(int $amount, int $user_id): void { db::c()->query('UPDATE users SET money = ?i WHERE `id` = ?i', $amount, $user_id); diff --git a/config.php b/config.php index 6638a21..75cbb35 100644 --- a/config.php +++ b/config.php @@ -62,6 +62,11 @@ trait Config "f" => ["a" => "0.75", "e" => "1", "f" => "1", "w" => "1.25"], "w" => ["a" => "1", "e" => "1.25", "f" => "0.75", "w" => "1"], ]; + //Для кланов + public static $clan_register_cost = 10000; //стоимость + public static $clan_register_lock = 1; //запрет на регистрацию + //Банк + public static $bank_comission = 0.05; //5% // Старая таблица опыта public static $exptable = [ 0 => [0, 0, 0, 0, 0, 20], diff --git a/main.php b/main.php index 026b41e..0d42cb2 100644 --- a/main.php +++ b/main.php @@ -48,6 +48,7 @@ while ($row = $data->fetch_assoc()) { $iteminfo[] = new InventoryItem($row); } +//Обработчики нажатий на кнопки. if (isset($_POST['battlefield'])) { header('Location: zayavka.php'); exit();