Конфиги вынесены в config.php; Cannot use object of type User as array.

This commit is contained in:
Igor Barkov (iwork) 2020-09-29 13:07:08 +03:00
parent 68ed039aaa
commit dada8c3521
4 changed files with 63 additions and 44 deletions

View File

@ -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 .= 'Вы уже имеете направленность!. <BR>';
}
if ($user->clan) {
$errorMessage .= 'Вы уже состоите в клане!. <BR>';
}
if (10000 >= $user->money) {
$errorMessage .= 'Не хватает денег на регистрацию клана. <BR>';
}
if (!$eff) {
$errorMessage .= 'Нет проверки. <BR>';
}
if (!$name_check) {
$errorMessage .= 'Клан с такими данными уже существует.<br>';
}
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);
}
}
?>
<!doctype html>
<html lang="ru">
@ -33,40 +64,7 @@ $klanDescr = $_POST['klandescr'] ?? '';
<h1>Регистратура кланов</h1>
<a href=# onclick=leave()> ← выйти из регистратуры</a>
<?php
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);
if (!empty($user['align'])) {
$error .= 'Вы уже имеете направленность!. <BR>';
}
if (!empty($user['klan'])) {
$error .= 'Вы уже состоите в клане!. <BR>';
}
if (10000 >= $user['money']) {
$error .= 'Не хватает денег на регистрацию клана. <BR>';
}
if (!$eff) {
$error .= 'Нет проверки. <BR>';
}
if (!$name_check) {
$error .= 'Клан с такими данными уже существует.<br>';
}
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 '<table>';
while ($clanreg_row = $clanreg->fetch_assoc()) {

View File

@ -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);

View File

@ -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],

View File

@ -48,6 +48,7 @@ while ($row = $data->fetch_assoc()) {
$iteminfo[] = new InventoryItem($row);
}
//Обработчики нажатий на кнопки.
if (isset($_POST['battlefield'])) {
header('Location: zayavka.php');
exit();