ПРОБЛЕМА Не покупает игрока и не снимает деньги с кассы (белый экран)

Pluginshik

Участник
В странице с персонажами при попытке купить персонажа и при попытке снять деньги с кассы выводиться белый экран и ничего не происходит баланс не соответствует требованиям но ошибку о нехватке средств не выдает и при снятии с кассы денег не выдает что деньги сняты с кассы как я понял что-то не так с файлом контроллером но не пойму что
PHP:
<?php

/**
*
*/
class AccountController
{

    public $usid;
    public $user_data;
    public $counters;
    public $config;
    
    function __construct()
    {

        $this->usid = User::isLogged();

        $this->user_data = User::getDataById($this->usid);

        $this->counters = User::getCounters($this->usid);

        $this->config = Settings::getSettings();

        Session::tockenSecurity();
    }

    public function actionCabinet ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountCabinet', LANG);

        $user_stat = User::getUserStat($this->user_data);

        $this->user_data['days'] = floor( ( time() - $this->user_data['date_reg']) / 60 / 60 / 24 );

        $deposits = Deposit::getUserDeposits($this->usid);

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_cabinet.php");

    }

    public function actionbrothel ()
    {

        // редирект если гость
        if(!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('Accountbrothel', LANG);

        $plans = Deposit::getPlans();

        if(isset($_POST['buy']) && isset($_POST['plan']))
        {

            // получаем необходимые данные
            $langerrors = Language::getErrors('Accountbrothel', LANG, $this->config);

             $plan = Deposit::getPlan(intval($_POST["plan"]));

             $errors = false;

             if(!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            // Проверяем план на существование
            if($errors === false && $plan === false) $errors = $langerrors[1];

            // Проверяем хватает ли денег
            if($errors === false && $plan['price'] > $this->user_data['money_b']) $errors = $langerrors[2];

            if($errors === false)
            {

                // изымаем сумму
                User::takeSum($this->usid, 'money_b', $plan['price']);

                // зачисляем депозит
                Deposit::doDeposit($this->user_data, $plan);

                $errors = $langerrors[3];

            }
        }

        if(isset($_POST['swap']))
        {

            // получаем необходимые данные
            $langerrors = Language::getErrors('Accountbrothel', LANG, $this->config);

             $errors = false;

             if(!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            // Проверяем хватает ли для обмена
            if($errors === false && $this->user_data['money_k'] < 0.01) $errors = $langerrors[1];

            if($errors === false)
            {

                // зачисляем сумму
                User::takeSum($this->usid, 'money_p', $this->user_data['money_k'], true);

                // изымаем сумму
                User::takeSum($this->usid, 'money_k', $this->user_data['money_k']);

                $errors = $langerrors[4];

            }
        }

        $contr = new AjaxController;

        $contr->actionBalance();

        $this->user_data = User::getDataById($this->usid);

        $deposits = Deposit::getUserDeposits($this->usid);

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_brothel.php");

    }

    public function actionLeaders ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountLeaders', LANG);

        $leads = Competition::getAllLeads();

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_leaders.php");

    }

    public function actionInsert ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountInsert', LANG);

        // получаем необходимые данные
        $langerrors = Language::getErrors('AccountInsert', LANG, $this->config);

        if (isset($_POST["amount"]) && isset($_POST["ps"]))
        {

             $paysystem = Validator::isSystem($_POST["ps"]);

            $paysystem = Paysystems::getPaysystem($paysystem);

            $amount = floatval($_POST['amount']);

             $errors = false;

             if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            // Проверяем валидность системы
            if ($errors === false && $paysystem === false) $errors = $langerrors[1];

            // Проверяем доступна ли платёжка
            if ($errors === false && Paysystems::isActive($paysystem['name']) === false)  $errors = $langerrors[2];

            // Проверяем доступна ли платёжка (для пополнений)
            if ($errors === false && Paysystems::isActive($paysystem['name'], 'insert') === false) $errors = $langerrors[2];

            // Проверяем нижний порог
            if ($errors === false && $amount < $this->config['min_ins']) $errors = $langerrors[3];

            // Проверяем верхний порог
            if ($errors === false && $amount > $this->config['max_ins']) $errors = $langerrors[4];

            if ($errors === false)
            {

                $payconfig = new PayConfig();

                $lid = Insert::prepeareInsert($this->user_data, $amount, $paysystem);

                $params = Paysystems::prepeareParams($paysystem['name'], $amount, $lid, $this->user_data, $payconfig);

                if ($params !== false)
                {
                    echo Paysystems::getForm($params);

                    return;
                }
            }

        }

        $paysystems = Paysystems::getActiveSystems();

        $statuses = array(
            0 => $langerrors[20],
            1 => $langerrors[21],
            );

        $last_inserts = User::getLastUserInserts($this->usid, $statuses, Paysystems::$paynames);

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_insert.php");

    }

    public function actionPayment ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountPayment', LANG);

        if (isset($_POST["amount"]) && isset($_POST["system"]))
        {
            
             $amount = floatval($_POST["amount"]);

             $ps = Validator::isSystem($_POST["system"]);

             $paysystem = Paysystems::getPaysystem($ps);

             $pay_pass = Validator::isPayPass($_POST["pin"]);

             $last_withdraw = User::getLastWithdrawTime($this->usid);

             $langerrors = Language::getErrors('AccountPayment', LANG, $this->config, $paysystem);

             $errors = false;

             if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

             // Проверяем установлен ли пин
             if ($errors === false && $this->user_data['pay_pass'] == '0') $errors = $langerrors[1];

             // Проверяем валидность системы
            if ($errors === false && $paysystem === false) $errors = $langerrors[2];

            // Проверяем валидность пароля
            if ($errors === false && $pay_pass === false) $errors = $langerrors[3];

             // Проверяем доступна ли платёжка
            if ($errors === false && Paysystems::isActive($ps) === false)  $errors = $langerrors[4];

            // Проверяем доступна ли платёжка (для выплат)
            if ($errors === false && Paysystems::isActive($ps, 'payment') === false) $errors = $langerrors[4];

            // Проверяем прописан ли кошель
            if ($errors === false && $this->user_data[$paysystem['name']] == '0') $errors = $langerrors[5];

            // Проверяем правильность пароля
            if ($errors === false) $pay_pass = Func::cryptPassword($pay_pass);

            if ($errors === false && $pay_pass != $this->user_data['pay_pass']) $errors = $langerrors[6];

            // Проверяем временное ограничение
            if ($errors === false && $last_withdraw + ( $this->config['pay_timeout'] * 60 * 60 ) > time()) $errors = $langerrors[7];

            // Проверяем выплату по нижнему ограничению
            if ($errors === false && $amount < $paysystem['min_pay'])  $errors = $langerrors[8];

            // Проверяем выплату по верхнему ограничению
            if ($errors === false && $amount > $paysystem['max_pay']) $errors = $langerrors[9];

            // Проверяем хватает ли денег
            if ($errors === false && $this->user_data["money_p"] < $amount) $errors = $langerrors[10];

            if ($errors === false)
            {

                $payconfig = new PayConfig();

                if (Paysystems::isActive($paysystem['name'], 'payment') == 1)
                {

                    $result = Paysystems::doWithdraw($this->user_data, $paysystem['name'], $amount, $payconfig);

                    if ($result === true)
                    {

                        $lid = Withdraw::prepeareWithdraw($this->user_data, $this->user_data[$paysystem['name']], $paysystem, $amount, Paysystems::isActive($paysystem['name'], 'payment'));
                        
                        Withdraw::doWithdraw($lid);
                        $errors = $langerrors[11];
                    }
                    else
                    {
                        $errors = $langerrors[$result];
                    }
                        
                }
                elseif (Paysystems::isActive($paysystem['name'], 'payment') == 2)
                {

                    $lid = Withdraw::prepeareWithdraw($this->user_data, $this->user_data[$paysystem['name']], $paysystem, $amount, Paysystems::isActive($paysystem['name'], 'payment'));

                    $errors = $langerrors[16];
                }
            }
        }

        $langerrors = Language::getErrors('AccountPayment', LANG);

        $paysystems = Paysystems::getActiveSystems();

        $this->user_data = User::getDataById($this->usid);

        $statuses = array(
            0 => $langerrors[20],
            1 => $langerrors[21],
            2 => $langerrors[22],
            3 => $langerrors[23],
            );

        $last_payments = User::getLastUserPayments($this->usid, $statuses, Paysystems::$paynames);

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_payment.php");
    }

    public function actionExchange ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountExchange', LANG);

        if (isset($_POST["amount"]) && isset($_POST["change"]))
        {

            $langerrors = Language::getErrors('AccountExchange', LANG);
            
             $amount = floatval($_POST["amount"]);

             switch ($_POST["change"])
             {
                 case '1':
                     $from = 'money_p';
                     $to = 'money_b';
                     break;

                 case '2':
                     $from = 'money_p';
                     $to = 'money_r';
                     break;
                
                 default:
                     $from = false;
                     $to = false;
                     break;
             }

             $errors = false;

             if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

             // Проверяем тип
             if ($errors === false && $from === false) $errors = $langerrors[1];

             // Проверяем нижний порог
             if ($errors === false && $amount < 1) $errors = $langerrors[2];

             // Проверяем хватает ли денег
             if ($errors === false && $amount > $this->user_data[$from]) $errors = $langerrors[3];

             if ($errors === false)
             {
                 // зачисляем сумму
                User::takeSum($this->usid, $to, $amount, true);

                // изымаем сумму
                User::takeSum($this->usid, $from, $amount);

                $this->user_data = User::getDataById($this->usid);

                $errors = $langerrors[4];
             }
         }

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_exchange.php");
    }

    public function actionInsertserfing ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountInsertserfing', LANG);

        // получаем необходимые данные
        $langerrors = Language::getErrors('AccountInsert', LANG, $this->config);

        if (isset($_POST["amount"]) && isset($_POST["ps"]))
        {

             $paysystem = Validator::isSystem($_POST["ps"]);

            $paysystem = Paysystems::getPaysystem($paysystem);

            $amount = floatval($_POST['amount']);

             $errors = false;

             if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            // Проверяем валидность системы
            if ($errors === false && $paysystem === false) $errors = $langerrors[1];

            // Проверяем доступна ли платёжка
            if ($errors === false && Paysystems::isActive($paysystem['name']) === false)  $errors = $langerrors[2];

            // Проверяем доступна ли платёжка (для пополнений)
            if ($errors === false && Paysystems::isActive($paysystem['name'], 'insert') === false) $errors = $langerrors[2];

            // Проверяем нижний порог
            if ($errors === false && $amount < $this->config['min_ins']) $errors = $langerrors[3];

            // Проверяем верхний порог
            if ($errors === false && $amount > $this->config['max_ins']) $errors = $langerrors[4];

            if ($errors === false)
            {

                $payconfig = new PayConfig();

                $lid = Insert::prepeareInsert($this->user_data, $amount, $paysystem, 2);

                $params = Paysystems::prepeareParams($paysystem['name'], $amount, $lid, $this->user_data, $payconfig);

                if ($params !== false)
                {
                    echo Paysystems::getForm($params);

                    return;
                }
            }

        }

        $paysystems = Paysystems::getActiveSystems();

        $statuses = array(
            0 => $langerrors[20],
            1 => $langerrors[21],
            );

        $last_inserts = User::getLastUserInserts($this->usid, $statuses, Paysystems::$paynames, 2);

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_insertserfing.php");

    }

    public function actionReferals ($l = 1)
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountReferals', LANG);

        $lvl = (intval($l) > 0 && intval($l) <= $this->config['ref_lvls']) ? intval($l) : 1;

        $referer_data = Referals::getReferer($this->usid);

        $ref_link = Referals::getReferalLink($this->usid);

        $referals = Referals::getReferalsLvl($this->usid, $lvl);

        require_once(ROOT . "/views/" . LANG . "/_referals.php");

    }

    public function actionPartnership ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountPartnership', LANG);

        $ref_link = Referals::getReferalLink($this->usid);

        require_once(ROOT . "/views/" . LANG . "/_partnership.php");

    }

    public function actionPromo ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountPromo', LANG);

        $referer_data = Referals::getReferer($this->usid);

        $ref_link = Referals::getReferalLink($this->usid);

        require_once(ROOT . "/views/" . LANG . "/_promo.php");

    }

    public function actionSettings ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountSettings', LANG);

        // получаем необходимые данные
        $langerrors = Language::getErrors('AccountSettings', LANG);

        $activesystems = Paysystems::getActiveSystems(true);

        foreach ($activesystems as $key => $value)
        {
            if ($value['active_payment'] == 0) continue;

            $activesystems[$key]['example'] = Paysystems::$payexamples[$value['name']];

            $activesystems[$key]['fullname'] = Paysystems::$paynames[$value['name']];
        }

        // установка кошелька
        if (isset($_POST["purse"]) && isset($_POST["system"]) && !empty($_POST["purse"]) && !empty($_POST["system"]))
        {

            // Валидация системы
            $paysystem = Validator::isSystem($_POST["system"]);

            $errors = false;

            if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            // Валидация платёжки
            if ($errors === false && $paysystem === false) $errors = $langerrors[12];

            // Валидация кошелька
            if ($errors === false) $purse = Validator::isPurse($_POST["purse"], $paysystem);

            // Проверяем доступна ли платёжка
            if ($errors === false && Paysystems::isActive($paysystem) === false)  $errors = $langerrors[13];

            // Валидация кошелька
            if ($errors === false && $purse === false) $errors = $langerrors[6];

            // Проверка на уже установленный кошелёк
            if ($errors === false && $this->user_data[$paysystem] != '0') $errors = $langerrors[7];

            if ($errors === false)
            {
                User::setPurse($this->usid, $purse, $paysystem);
                $errors = $langerrors[5];
            }

        }

        // смена пароля
        if (isset($_POST["old"]) && isset($_POST["new"]) && isset($_POST["re_new"]) && !empty($_POST["old"]) && !empty($_POST["new"]) && !empty($_POST["re_new"]))
        {

            // Валидация паролей
            $old = Validator::isPassword($_POST["old"]);

            $new = Validator::isPassword($_POST["new"]);

            $re_new = Validator::isPassword($_POST["re_new"]);

            $errors = false;

            if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            if ($errors === false && ($old === false OR $new === false OR $re_new === false)) $errors = $langerrors[3];

            // Проверка старого пароля
            if ($errors === false) $old = Func::cryptPassword($old);

            if ($errors === false && $old != $this->user_data['pass']) $errors = $langerrors[4];

            // Проверка паролей на совпадение
            if ($errors === false && $new !== $re_new) $errors = $langerrors[2];

            if ($errors === false)
            {

                $new = Func::cryptPassword($new);

                User::changePass($this->usid, $new);

                $errors = $langerrors[1];

            }

        }

        // установка пин-кода
        if (isset($_POST["pin"]) && !empty($_POST["pin"]))
        {

            $pin = Validator::isPayPass($_POST["pin"]);

            $errors = false;

            if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            if ($errors === false && $this->user_data['pay_pass'] != '0') $errors = $langerrors[15];

            if ($errors === false && $pin === false) $errors = $langerrors[14];

            if ($errors === false)
            {
                $pay_pass_crypt = Func::cryptPassword($pin);

                User::changePayPassword($pay_pass_crypt, $this->usid);

                $errors = $langerrors[16];
            }

        }

        $this->user_data = User::getDataById($this->usid);

        require_once(ROOT . "/views/" . LANG . "/_settings.php");

    }

    public function actionQuests ($res = NULL)
    {
        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountQuests', LANG);

        $langerrors = Language::getErrors('AccountQuests', LANG, $this->config);

        if (isset($_POST['serf_quest']))
        {

            $errors = false;

            if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            if ($errors === false && $this->user_data['serf_bonus'] == 1) $errors = $langerrors[6];

            if ($errors === false && $this->user_data['serf_clicks'] < 1000) $errors = $langerrors[7];

            if ($errors === false)
            {
                User::takeSum($this->usid, 'money_b', $this->config['serf_quest_bonus'], true);

                User::updateSerfQuest($this->usid);

                $errors = $langerrors[8];

                $this->user_data = User::getDataById($this->usid);
            }
        }

        if (isset($_POST['ref_quest']))
        {

            $errors = false;

            if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            if ($errors === false && $this->user_data['ref_bonus'] == 1) $errors = $langerrors[6];

            if ($errors === false && $this->user_data['count_ref1'] < 50) $errors = $langerrors[7];

            if ($errors === false)
            {
                User::takeSum($this->usid, 'money_b', $this->config['ref_quest_bonus'], true);

                User::updateRefQuest($this->usid);

                $errors = $langerrors[9];

                $this->user_data = User::getDataById($this->usid);
            }
        }

        require_once(ROOT . "/views/" . LANG . "/_quests.php");

        if ($res != NULL)
        {
            switch ($res)
            {
                case 1:
                    echo "<script>setTimeout(function(){swal('Ошибка', 'Задание не зарегистрировано в системе!', 'error')}, 100);</script>";
                    break;
                case 2:
                    echo "<script>setTimeout(function(){swal('Ошибка', 'Вы не вступили в группу ВКонтакте!', 'error')}, 100);</script>";
                    break;
                case 3:
                    echo "<script>setTimeout(function(){swal('Ошибка', 'ВК аккаунт уже использовался другим пользователем!', 'error')}, 100);</script>";
                    break;
                case 4:
                    echo "<script>setTimeout(function(){swal('Ошибка', 'Вы уже получали бонус!', 'error')}, 100);</script>";
                    break;
                case 5:
                    echo "<script>setTimeout(function(){swal('Успешно', 'Бонус зачислен', 'success')}, 100);</script>";
                    break;
            }
        }
    }

    public function actionBonus ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountBonus', LANG);

        $max_time = strtotime(date('d.m.Y'));

        if (isset($_POST["bonus"]))
        {

            $bonus_avialable = User::checkAvialableBonus($this->usid, $max_time);

            $langerrors = Language::getErrors('AccountBonus', LANG);

            $errors = false;

            if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            if ($errors === false && $bonus_avialable === false) $errors = $langerrors[1];

            if ($errors === false)
            {

                $sum = rand($this->config['min_bonus']*100, $this->config['max_bonus']*100)/100;

                User::takeSum($this->usid, 'money_b', $sum, true);

                Info::addBonus($this->user_data, $sum, time());

                $this->user_data = User::getDataById($this->usid);

                $langerrors = Language::getErrors('AccountBonus', LANG, false, array('sum' => $sum));

                $errors = $langerrors[2];
            }

        }

        $bonus_avialable = User::checkAvialableBonus($this->usid, $max_time);

        $last_bonuses = Info::getLastBonuses();

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_bonus.php");
    }

    public function actionCalculator ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountCalculator', LANG);

        $plans = Deposit::getPlans();

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_calculator.php");
    }

    public function actionLogout()
    {
        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_SESSION = array();

        Header("Location: /");
    }

}
Файл кассы
PHP:
<?php require_once(ROOT . "/views/" . LANG . "/layouts/_header_c.php"); ?>

<div class="page-content-wrapper ">

  <div class="container">

    <div class="row">

      <div class="col-md-12 col-lg-6">

        <div class="row">

          <div class="col-md-12">

            <div class="panel text-center">

              <div class="panel-heading">

                <h3 class="panel-title">Касса моего Оперсонажа:</h4>

              </div>

              <div class="panel-body p-t-0" style="padding-top: 20px !important;">

                <h1 class="m-t-0 m-b-0 carsbalcount"><i class="mdi mdi-wallet text-danger m-r-5"></i><span id="bls"><?=sprintf("%.8f", $this->user_data['money_k']); ?></span> <div class="rub">руб.</div></h1>

                <h4 class="m-t-5 m-b-15 carsspeedcount" style="margin-bottom: 15px;"><i class="mdi mdi-speedometer text-primary m-r-10"></i><b><?=sprintf("%.4f", $this->user_data['speed']); ?>₽ / час </b></h4>

              <?php if ($this->user_data['money_k'] < 0.01) : ?>

                <p class="text-muted m-b-0 m-t-15">

                  <code class="carserrorbox">Снять деньги с кассы можно как только накопится хотя бы 0.01 руб!</code>

                </p>

              <?php else : ?>

                <form action="" method="post">

                  <input type="hidden" name="_tocken" value="<?=Session::$tocken; ?>">

                  <button type="submit" name="swap" class="btn waves-effect btn-default"> <i class="fa fa-money"></i> Снять деньги с кассы притона</button>

                </form>

              <?php endif; ?>

              </div>

            </div>

          </div>

          <div class="col-md-12">

            <div class="panel text-center">

              <div class="panel-heading">

                <h3 class="panel-title">Персонажи в Вашем притоне</h4>

              </div>

              <div class="panel-body p-t-10">

                <div class="row">

                <?php foreach ($deposits as $deposit) : ?>

                  <div class="col-lg-2 col-sm-2 col-xs-2">

                    <img src="/design/img/<?=$deposit['plan']; ?>.png" class="profilecarimg">

                  </div>     

                <?php endforeach; ?>

                </div>

              </div>

            </div>

          </div>

          <div class="col-md-12">

            <div class="panel panel-color">

              <div class="panel-heading">

                <h3 class="panel-title">Описание игрового процесса</h4>

              </div>

              <div class="panel-body p-t-10">

                <h4 class="carsinfoh4">Притон, персонажи и скорость заработка:</h4>

                <p class="carsinfop">Чем больше персонажей в Вашем притоне, тем больше доход он приносит. Основная единица измерения дохода в <?=NAME; ?> это "скорость заработка". У каждого из представленных персонажей своя скорость заработка.</p>

                <h4 class="carsinfoh4">Способы заработка на проекте <?=NAME; ?>:</h4>

                <p class="carsinfop">Если вы не хотите покупать персонажей, то мы предлагаем Вам заработать следующими способами:</p>

                <p class="carsinfop" style="padding-left:10px;"><a href="/serfing">Сёрфинг сайтов</a> - смотрите сайты наших рекламодателей и получайте до 0,06 руб за один просмотр!</p>

                <p class="carsinfop" style="padding-left:10px;"><a href="/partnership">Партнерская программа</a> - приглашайте в проект своих друзей и знакомых и получайте премиальные.</p>

                <p class="carsinfop" style="padding-left:10px;"><a href="/bonus">Ежедневный бонус</a>, <a href="/competitions">Конкурсы</a> - получайте призы и бонусы за свою активность на проекте!</p>

              </div>

            </div>

          </div>

        </div>

      </div>

      <div class="col-md-12 col-lg-6">

        <div class="row">

            

            

            <div class="col-md-14">

                 <div class="panel panel-color">

          

              <div class="panel-heading">

                <h3 class="panel-title">Нанять персонажа</h4>

              </div>

            

              <div class="panel-body p-t-10">

                <div class="panel-title text-center">

            

        <?php foreach ($plans as $plan) : ?>

        

     <style>

     .profileinfoh5:first-of-type {    margin-top: 10px;

    text-align: left;

}

     </style>

          <div class="col-sm-12 col-sm-6">

            <div class="panel panel-default">

              <div class="panel-heading"><h3 class="panel-title text-center"><?=$plan['name']; ?></h3></div>

              <div class="panel-body">

                <div class="carsbuydiv"><img src="/design/img/<?=$plan['id']; ?>.png"></div>

                <h5 class="profileinfoh5">Стоимость: <span><?=$plan['price']; ?> руб.</span></h5>

                <h5 class="profileinfoh5">Доходность: <span><?=round($plan['inh']); ?>% / мес.</span></h5>

                <h5 class="profileinfoh5">Скорость: <span><?=sprintf("%.4f", $plan['perc']); ?>₽ / час</span></h5>

                <form action="" method="POST">

                  <input type="hidden" name="plan" value="<?=$plan['id']; ?>">

                  <input type="hidden" name="_tocken" value="<?=Session::$tocken; ?>">

                  <button type="submit" name="buy" class="btn waves-effect btn-default btn-block carsshopbtn"> <i class="mdi mdi-cart"></i> Купить  (<?=$plan['price']; ?> руб.)</button>

                </form>

              </div>

            </div>

          </div>

        <?php endforeach; ?>

        </div>

      </div>

    </div><!-- end row -->

  </div><!-- container -->

</div> <!-- Page content Wrapper -->

<link href="/assets/plugins/bootstrap-sweetalert/sweet-alert.css" rel="stylesheet" type="text/css">

<script src="/assets/plugins/bootstrap-sweetalert/sweet-alert.min.js"></script>

<script>

  function funcSuccessgetBallance (error){

      var result = JSON.parse(error);

      var balance = parseFloat(result).toFixed(8);

      $('#bls').html(balance);

  }

  function getBallance (){

      setInterval(function(){

          $.ajax ({

              url: '/ajax/balance',

              type: 'POST',

              data: {type: 'ajax'},

              dataType: 'html',

              success: funcSuccessgetBallance

          })

      }, 1000)

  }

  getBallance ();

</script>

<?php require_once(ROOT . "/views/" . LANG . "/layouts/_footer_c.php"); ?>
 

pligin

Команда форума
Администратор
В странице с персонажами при попытке купить персонажа и при попытке снять деньги с кассы выводиться белый экран и ничего не происходит баланс не соответствует требованиям но ошибку о нехватке средств не выдает и при снятии с кассы денег не выдает что деньги сняты с кассы как я понял что-то не так с файлом контроллером но не пойму что
PHP:
<?php

/**
*
*/
class AccountController
{

    public $usid;
    public $user_data;
    public $counters;
    public $config;
   
    function __construct()
    {

        $this->usid = User::isLogged();

        $this->user_data = User::getDataById($this->usid);

        $this->counters = User::getCounters($this->usid);

        $this->config = Settings::getSettings();

        Session::tockenSecurity();
    }

    public function actionCabinet ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountCabinet', LANG);

        $user_stat = User::getUserStat($this->user_data);

        $this->user_data['days'] = floor( ( time() - $this->user_data['date_reg']) / 60 / 60 / 24 );

        $deposits = Deposit::getUserDeposits($this->usid);

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_cabinet.php");

    }

    public function actionbrothel ()
    {

        // редирект если гость
        if(!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('Accountbrothel', LANG);

        $plans = Deposit::getPlans();

        if(isset($_POST['buy']) && isset($_POST['plan']))
        {

            // получаем необходимые данные
            $langerrors = Language::getErrors('Accountbrothel', LANG, $this->config);

             $plan = Deposit::getPlan(intval($_POST["plan"]));

             $errors = false;

             if(!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            // Проверяем план на существование
            if($errors === false && $plan === false) $errors = $langerrors[1];

            // Проверяем хватает ли денег
            if($errors === false && $plan['price'] > $this->user_data['money_b']) $errors = $langerrors[2];

            if($errors === false)
            {

                // изымаем сумму
                User::takeSum($this->usid, 'money_b', $plan['price']);

                // зачисляем депозит
                Deposit::doDeposit($this->user_data, $plan);

                $errors = $langerrors[3];

            }
        }

        if(isset($_POST['swap']))
        {

            // получаем необходимые данные
            $langerrors = Language::getErrors('Accountbrothel', LANG, $this->config);

             $errors = false;

             if(!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            // Проверяем хватает ли для обмена
            if($errors === false && $this->user_data['money_k'] < 0.01) $errors = $langerrors[1];

            if($errors === false)
            {

                // зачисляем сумму
                User::takeSum($this->usid, 'money_p', $this->user_data['money_k'], true);

                // изымаем сумму
                User::takeSum($this->usid, 'money_k', $this->user_data['money_k']);

                $errors = $langerrors[4];

            }
        }

        $contr = new AjaxController;

        $contr->actionBalance();

        $this->user_data = User::getDataById($this->usid);

        $deposits = Deposit::getUserDeposits($this->usid);

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_brothel.php");

    }

    public function actionLeaders ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountLeaders', LANG);

        $leads = Competition::getAllLeads();

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_leaders.php");

    }

    public function actionInsert ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountInsert', LANG);

        // получаем необходимые данные
        $langerrors = Language::getErrors('AccountInsert', LANG, $this->config);

        if (isset($_POST["amount"]) && isset($_POST["ps"]))
        {

             $paysystem = Validator::isSystem($_POST["ps"]);

            $paysystem = Paysystems::getPaysystem($paysystem);

            $amount = floatval($_POST['amount']);

             $errors = false;

             if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            // Проверяем валидность системы
            if ($errors === false && $paysystem === false) $errors = $langerrors[1];

            // Проверяем доступна ли платёжка
            if ($errors === false && Paysystems::isActive($paysystem['name']) === false)  $errors = $langerrors[2];

            // Проверяем доступна ли платёжка (для пополнений)
            if ($errors === false && Paysystems::isActive($paysystem['name'], 'insert') === false) $errors = $langerrors[2];

            // Проверяем нижний порог
            if ($errors === false && $amount < $this->config['min_ins']) $errors = $langerrors[3];

            // Проверяем верхний порог
            if ($errors === false && $amount > $this->config['max_ins']) $errors = $langerrors[4];

            if ($errors === false)
            {

                $payconfig = new PayConfig();

                $lid = Insert::prepeareInsert($this->user_data, $amount, $paysystem);

                $params = Paysystems::prepeareParams($paysystem['name'], $amount, $lid, $this->user_data, $payconfig);

                if ($params !== false)
                {
                    echo Paysystems::getForm($params);

                    return;
                }
            }

        }

        $paysystems = Paysystems::getActiveSystems();

        $statuses = array(
            0 => $langerrors[20],
            1 => $langerrors[21],
            );

        $last_inserts = User::getLastUserInserts($this->usid, $statuses, Paysystems::$paynames);

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_insert.php");

    }

    public function actionPayment ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountPayment', LANG);

        if (isset($_POST["amount"]) && isset($_POST["system"]))
        {
           
             $amount = floatval($_POST["amount"]);

             $ps = Validator::isSystem($_POST["system"]);

             $paysystem = Paysystems::getPaysystem($ps);

             $pay_pass = Validator::isPayPass($_POST["pin"]);

             $last_withdraw = User::getLastWithdrawTime($this->usid);

             $langerrors = Language::getErrors('AccountPayment', LANG, $this->config, $paysystem);

             $errors = false;

             if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

             // Проверяем установлен ли пин
             if ($errors === false && $this->user_data['pay_pass'] == '0') $errors = $langerrors[1];

             // Проверяем валидность системы
            if ($errors === false && $paysystem === false) $errors = $langerrors[2];

            // Проверяем валидность пароля
            if ($errors === false && $pay_pass === false) $errors = $langerrors[3];

             // Проверяем доступна ли платёжка
            if ($errors === false && Paysystems::isActive($ps) === false)  $errors = $langerrors[4];

            // Проверяем доступна ли платёжка (для выплат)
            if ($errors === false && Paysystems::isActive($ps, 'payment') === false) $errors = $langerrors[4];

            // Проверяем прописан ли кошель
            if ($errors === false && $this->user_data[$paysystem['name']] == '0') $errors = $langerrors[5];

            // Проверяем правильность пароля
            if ($errors === false) $pay_pass = Func::cryptPassword($pay_pass);

            if ($errors === false && $pay_pass != $this->user_data['pay_pass']) $errors = $langerrors[6];

            // Проверяем временное ограничение
            if ($errors === false && $last_withdraw + ( $this->config['pay_timeout'] * 60 * 60 ) > time()) $errors = $langerrors[7];

            // Проверяем выплату по нижнему ограничению
            if ($errors === false && $amount < $paysystem['min_pay'])  $errors = $langerrors[8];

            // Проверяем выплату по верхнему ограничению
            if ($errors === false && $amount > $paysystem['max_pay']) $errors = $langerrors[9];

            // Проверяем хватает ли денег
            if ($errors === false && $this->user_data["money_p"] < $amount) $errors = $langerrors[10];

            if ($errors === false)
            {

                $payconfig = new PayConfig();

                if (Paysystems::isActive($paysystem['name'], 'payment') == 1)
                {

                    $result = Paysystems::doWithdraw($this->user_data, $paysystem['name'], $amount, $payconfig);

                    if ($result === true)
                    {

                        $lid = Withdraw::prepeareWithdraw($this->user_data, $this->user_data[$paysystem['name']], $paysystem, $amount, Paysystems::isActive($paysystem['name'], 'payment'));
                       
                        Withdraw::doWithdraw($lid);
                        $errors = $langerrors[11];
                    }
                    else
                    {
                        $errors = $langerrors[$result];
                    }
                       
                }
                elseif (Paysystems::isActive($paysystem['name'], 'payment') == 2)
                {

                    $lid = Withdraw::prepeareWithdraw($this->user_data, $this->user_data[$paysystem['name']], $paysystem, $amount, Paysystems::isActive($paysystem['name'], 'payment'));

                    $errors = $langerrors[16];
                }
            }
        }

        $langerrors = Language::getErrors('AccountPayment', LANG);

        $paysystems = Paysystems::getActiveSystems();

        $this->user_data = User::getDataById($this->usid);

        $statuses = array(
            0 => $langerrors[20],
            1 => $langerrors[21],
            2 => $langerrors[22],
            3 => $langerrors[23],
            );

        $last_payments = User::getLastUserPayments($this->usid, $statuses, Paysystems::$paynames);

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_payment.php");
    }

    public function actionExchange ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountExchange', LANG);

        if (isset($_POST["amount"]) && isset($_POST["change"]))
        {

            $langerrors = Language::getErrors('AccountExchange', LANG);
           
             $amount = floatval($_POST["amount"]);

             switch ($_POST["change"])
             {
                 case '1':
                     $from = 'money_p';
                     $to = 'money_b';
                     break;

                 case '2':
                     $from = 'money_p';
                     $to = 'money_r';
                     break;
               
                 default:
                     $from = false;
                     $to = false;
                     break;
             }

             $errors = false;

             if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

             // Проверяем тип
             if ($errors === false && $from === false) $errors = $langerrors[1];

             // Проверяем нижний порог
             if ($errors === false && $amount < 1) $errors = $langerrors[2];

             // Проверяем хватает ли денег
             if ($errors === false && $amount > $this->user_data[$from]) $errors = $langerrors[3];

             if ($errors === false)
             {
                 // зачисляем сумму
                User::takeSum($this->usid, $to, $amount, true);

                // изымаем сумму
                User::takeSum($this->usid, $from, $amount);

                $this->user_data = User::getDataById($this->usid);

                $errors = $langerrors[4];
             }
         }

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_exchange.php");
    }

    public function actionInsertserfing ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountInsertserfing', LANG);

        // получаем необходимые данные
        $langerrors = Language::getErrors('AccountInsert', LANG, $this->config);

        if (isset($_POST["amount"]) && isset($_POST["ps"]))
        {

             $paysystem = Validator::isSystem($_POST["ps"]);

            $paysystem = Paysystems::getPaysystem($paysystem);

            $amount = floatval($_POST['amount']);

             $errors = false;

             if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            // Проверяем валидность системы
            if ($errors === false && $paysystem === false) $errors = $langerrors[1];

            // Проверяем доступна ли платёжка
            if ($errors === false && Paysystems::isActive($paysystem['name']) === false)  $errors = $langerrors[2];

            // Проверяем доступна ли платёжка (для пополнений)
            if ($errors === false && Paysystems::isActive($paysystem['name'], 'insert') === false) $errors = $langerrors[2];

            // Проверяем нижний порог
            if ($errors === false && $amount < $this->config['min_ins']) $errors = $langerrors[3];

            // Проверяем верхний порог
            if ($errors === false && $amount > $this->config['max_ins']) $errors = $langerrors[4];

            if ($errors === false)
            {

                $payconfig = new PayConfig();

                $lid = Insert::prepeareInsert($this->user_data, $amount, $paysystem, 2);

                $params = Paysystems::prepeareParams($paysystem['name'], $amount, $lid, $this->user_data, $payconfig);

                if ($params !== false)
                {
                    echo Paysystems::getForm($params);

                    return;
                }
            }

        }

        $paysystems = Paysystems::getActiveSystems();

        $statuses = array(
            0 => $langerrors[20],
            1 => $langerrors[21],
            );

        $last_inserts = User::getLastUserInserts($this->usid, $statuses, Paysystems::$paynames, 2);

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_insertserfing.php");

    }

    public function actionReferals ($l = 1)
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountReferals', LANG);

        $lvl = (intval($l) > 0 && intval($l) <= $this->config['ref_lvls']) ? intval($l) : 1;

        $referer_data = Referals::getReferer($this->usid);

        $ref_link = Referals::getReferalLink($this->usid);

        $referals = Referals::getReferalsLvl($this->usid, $lvl);

        require_once(ROOT . "/views/" . LANG . "/_referals.php");

    }

    public function actionPartnership ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountPartnership', LANG);

        $ref_link = Referals::getReferalLink($this->usid);

        require_once(ROOT . "/views/" . LANG . "/_partnership.php");

    }

    public function actionPromo ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountPromo', LANG);

        $referer_data = Referals::getReferer($this->usid);

        $ref_link = Referals::getReferalLink($this->usid);

        require_once(ROOT . "/views/" . LANG . "/_promo.php");

    }

    public function actionSettings ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountSettings', LANG);

        // получаем необходимые данные
        $langerrors = Language::getErrors('AccountSettings', LANG);

        $activesystems = Paysystems::getActiveSystems(true);

        foreach ($activesystems as $key => $value)
        {
            if ($value['active_payment'] == 0) continue;

            $activesystems[$key]['example'] = Paysystems::$payexamples[$value['name']];

            $activesystems[$key]['fullname'] = Paysystems::$paynames[$value['name']];
        }

        // установка кошелька
        if (isset($_POST["purse"]) && isset($_POST["system"]) && !empty($_POST["purse"]) && !empty($_POST["system"]))
        {

            // Валидация системы
            $paysystem = Validator::isSystem($_POST["system"]);

            $errors = false;

            if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            // Валидация платёжки
            if ($errors === false && $paysystem === false) $errors = $langerrors[12];

            // Валидация кошелька
            if ($errors === false) $purse = Validator::isPurse($_POST["purse"], $paysystem);

            // Проверяем доступна ли платёжка
            if ($errors === false && Paysystems::isActive($paysystem) === false)  $errors = $langerrors[13];

            // Валидация кошелька
            if ($errors === false && $purse === false) $errors = $langerrors[6];

            // Проверка на уже установленный кошелёк
            if ($errors === false && $this->user_data[$paysystem] != '0') $errors = $langerrors[7];

            if ($errors === false)
            {
                User::setPurse($this->usid, $purse, $paysystem);
                $errors = $langerrors[5];
            }

        }

        // смена пароля
        if (isset($_POST["old"]) && isset($_POST["new"]) && isset($_POST["re_new"]) && !empty($_POST["old"]) && !empty($_POST["new"]) && !empty($_POST["re_new"]))
        {

            // Валидация паролей
            $old = Validator::isPassword($_POST["old"]);

            $new = Validator::isPassword($_POST["new"]);

            $re_new = Validator::isPassword($_POST["re_new"]);

            $errors = false;

            if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            if ($errors === false && ($old === false OR $new === false OR $re_new === false)) $errors = $langerrors[3];

            // Проверка старого пароля
            if ($errors === false) $old = Func::cryptPassword($old);

            if ($errors === false && $old != $this->user_data['pass']) $errors = $langerrors[4];

            // Проверка паролей на совпадение
            if ($errors === false && $new !== $re_new) $errors = $langerrors[2];

            if ($errors === false)
            {

                $new = Func::cryptPassword($new);

                User::changePass($this->usid, $new);

                $errors = $langerrors[1];

            }

        }

        // установка пин-кода
        if (isset($_POST["pin"]) && !empty($_POST["pin"]))
        {

            $pin = Validator::isPayPass($_POST["pin"]);

            $errors = false;

            if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            if ($errors === false && $this->user_data['pay_pass'] != '0') $errors = $langerrors[15];

            if ($errors === false && $pin === false) $errors = $langerrors[14];

            if ($errors === false)
            {
                $pay_pass_crypt = Func::cryptPassword($pin);

                User::changePayPassword($pay_pass_crypt, $this->usid);

                $errors = $langerrors[16];
            }

        }

        $this->user_data = User::getDataById($this->usid);

        require_once(ROOT . "/views/" . LANG . "/_settings.php");

    }

    public function actionQuests ($res = NULL)
    {
        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountQuests', LANG);

        $langerrors = Language::getErrors('AccountQuests', LANG, $this->config);

        if (isset($_POST['serf_quest']))
        {

            $errors = false;

            if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            if ($errors === false && $this->user_data['serf_bonus'] == 1) $errors = $langerrors[6];

            if ($errors === false && $this->user_data['serf_clicks'] < 1000) $errors = $langerrors[7];

            if ($errors === false)
            {
                User::takeSum($this->usid, 'money_b', $this->config['serf_quest_bonus'], true);

                User::updateSerfQuest($this->usid);

                $errors = $langerrors[8];

                $this->user_data = User::getDataById($this->usid);
            }
        }

        if (isset($_POST['ref_quest']))
        {

            $errors = false;

            if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            if ($errors === false && $this->user_data['ref_bonus'] == 1) $errors = $langerrors[6];

            if ($errors === false && $this->user_data['count_ref1'] < 50) $errors = $langerrors[7];

            if ($errors === false)
            {
                User::takeSum($this->usid, 'money_b', $this->config['ref_quest_bonus'], true);

                User::updateRefQuest($this->usid);

                $errors = $langerrors[9];

                $this->user_data = User::getDataById($this->usid);
            }
        }

        require_once(ROOT . "/views/" . LANG . "/_quests.php");

        if ($res != NULL)
        {
            switch ($res)
            {
                case 1:
                    echo "<script>setTimeout(function(){swal('Ошибка', 'Задание не зарегистрировано в системе!', 'error')}, 100);</script>";
                    break;
                case 2:
                    echo "<script>setTimeout(function(){swal('Ошибка', 'Вы не вступили в группу ВКонтакте!', 'error')}, 100);</script>";
                    break;
                case 3:
                    echo "<script>setTimeout(function(){swal('Ошибка', 'ВК аккаунт уже использовался другим пользователем!', 'error')}, 100);</script>";
                    break;
                case 4:
                    echo "<script>setTimeout(function(){swal('Ошибка', 'Вы уже получали бонус!', 'error')}, 100);</script>";
                    break;
                case 5:
                    echo "<script>setTimeout(function(){swal('Успешно', 'Бонус зачислен', 'success')}, 100);</script>";
                    break;
            }
        }
    }

    public function actionBonus ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountBonus', LANG);

        $max_time = strtotime(date('d.m.Y'));

        if (isset($_POST["bonus"]))
        {

            $bonus_avialable = User::checkAvialableBonus($this->usid, $max_time);

            $langerrors = Language::getErrors('AccountBonus', LANG);

            $errors = false;

            if (!Session::checkTockenSecurity($_POST['_tocken'])) $errors = $langerrors['s'];

            if ($errors === false && $bonus_avialable === false) $errors = $langerrors[1];

            if ($errors === false)
            {

                $sum = rand($this->config['min_bonus']*100, $this->config['max_bonus']*100)/100;

                User::takeSum($this->usid, 'money_b', $sum, true);

                Info::addBonus($this->user_data, $sum, time());

                $this->user_data = User::getDataById($this->usid);

                $langerrors = Language::getErrors('AccountBonus', LANG, false, array('sum' => $sum));

                $errors = $langerrors[2];
            }

        }

        $bonus_avialable = User::checkAvialableBonus($this->usid, $max_time);

        $last_bonuses = Info::getLastBonuses();

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_bonus.php");
    }

    public function actionCalculator ()
    {

        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_title = Language::getTitle('AccountCalculator', LANG);

        $plans = Deposit::getPlans();

        // подключаем вид
        require_once(ROOT . "/views/" . LANG . "/_calculator.php");
    }

    public function actionLogout()
    {
        // редирект если гость
        if (!$this->usid)
        {
            Header("Location: /");
            return;
        }

        $_SESSION = array();

        Header("Location: /");
    }

}
Файл кассы
PHP:
<?php require_once(ROOT . "/views/" . LANG . "/layouts/_header_c.php"); ?>

<div class="page-content-wrapper ">

  <div class="container">

    <div class="row">

      <div class="col-md-12 col-lg-6">

        <div class="row">

          <div class="col-md-12">

            <div class="panel text-center">

              <div class="panel-heading">

                <h3 class="panel-title">Касса моего Оперсонажа:</h4>

              </div>

              <div class="panel-body p-t-0" style="padding-top: 20px !important;">

                <h1 class="m-t-0 m-b-0 carsbalcount"><i class="mdi mdi-wallet text-danger m-r-5"></i><span id="bls"><?=sprintf("%.8f", $this->user_data['money_k']); ?></span> <div class="rub">руб.</div></h1>

                <h4 class="m-t-5 m-b-15 carsspeedcount" style="margin-bottom: 15px;"><i class="mdi mdi-speedometer text-primary m-r-10"></i><b><?=sprintf("%.4f", $this->user_data['speed']); ?>₽ / час </b></h4>

              <?php if ($this->user_data['money_k'] < 0.01) : ?>

                <p class="text-muted m-b-0 m-t-15">

                  <code class="carserrorbox">Снять деньги с кассы можно как только накопится хотя бы 0.01 руб!</code>

                </p>

              <?php else : ?>

                <form action="" method="post">

                  <input type="hidden" name="_tocken" value="<?=Session::$tocken; ?>">

                  <button type="submit" name="swap" class="btn waves-effect btn-default"> <i class="fa fa-money"></i> Снять деньги с кассы притона</button>

                </form>

              <?php endif; ?>

              </div>

            </div>

          </div>

          <div class="col-md-12">

            <div class="panel text-center">

              <div class="panel-heading">

                <h3 class="panel-title">Персонажи в Вашем притоне</h4>

              </div>

              <div class="panel-body p-t-10">

                <div class="row">

                <?php foreach ($deposits as $deposit) : ?>

                  <div class="col-lg-2 col-sm-2 col-xs-2">

                    <img src="/design/img/<?=$deposit['plan']; ?>.png" class="profilecarimg">

                  </div>    

                <?php endforeach; ?>

                </div>

              </div>

            </div>

          </div>

          <div class="col-md-12">

            <div class="panel panel-color">

              <div class="panel-heading">

                <h3 class="panel-title">Описание игрового процесса</h4>

              </div>

              <div class="panel-body p-t-10">

                <h4 class="carsinfoh4">Притон, персонажи и скорость заработка:</h4>

                <p class="carsinfop">Чем больше персонажей в Вашем притоне, тем больше доход он приносит. Основная единица измерения дохода в <?=NAME; ?> это "скорость заработка". У каждого из представленных персонажей своя скорость заработка.</p>

                <h4 class="carsinfoh4">Способы заработка на проекте <?=NAME; ?>:</h4>

                <p class="carsinfop">Если вы не хотите покупать персонажей, то мы предлагаем Вам заработать следующими способами:</p>

                <p class="carsinfop" style="padding-left:10px;"><a href="/serfing">Сёрфинг сайтов</a> - смотрите сайты наших рекламодателей и получайте до 0,06 руб за один просмотр!</p>

                <p class="carsinfop" style="padding-left:10px;"><a href="/partnership">Партнерская программа</a> - приглашайте в проект своих друзей и знакомых и получайте премиальные.</p>

                <p class="carsinfop" style="padding-left:10px;"><a href="/bonus">Ежедневный бонус</a>, <a href="/competitions">Конкурсы</a> - получайте призы и бонусы за свою активность на проекте!</p>

              </div>

            </div>

          </div>

        </div>

      </div>

      <div class="col-md-12 col-lg-6">

        <div class="row">

           

           

            <div class="col-md-14">

                 <div class="panel panel-color">

         

              <div class="panel-heading">

                <h3 class="panel-title">Нанять персонажа</h4>

              </div>

           

              <div class="panel-body p-t-10">

                <div class="panel-title text-center">

           

        <?php foreach ($plans as $plan) : ?>

       

     <style>

     .profileinfoh5:first-of-type {    margin-top: 10px;

    text-align: left;

}

     </style>

          <div class="col-sm-12 col-sm-6">

            <div class="panel panel-default">

              <div class="panel-heading"><h3 class="panel-title text-center"><?=$plan['name']; ?></h3></div>

              <div class="panel-body">

                <div class="carsbuydiv"><img src="/design/img/<?=$plan['id']; ?>.png"></div>

                <h5 class="profileinfoh5">Стоимость: <span><?=$plan['price']; ?> руб.</span></h5>

                <h5 class="profileinfoh5">Доходность: <span><?=round($plan['inh']); ?>% / мес.</span></h5>

                <h5 class="profileinfoh5">Скорость: <span><?=sprintf("%.4f", $plan['perc']); ?>₽ / час</span></h5>

                <form action="" method="POST">

                  <input type="hidden" name="plan" value="<?=$plan['id']; ?>">

                  <input type="hidden" name="_tocken" value="<?=Session::$tocken; ?>">

                  <button type="submit" name="buy" class="btn waves-effect btn-default btn-block carsshopbtn"> <i class="mdi mdi-cart"></i> Купить  (<?=$plan['price']; ?> руб.)</button>

                </form>

              </div>

            </div>

          </div>

        <?php endforeach; ?>

        </div>

      </div>

    </div><!-- end row -->

  </div><!-- container -->

</div> <!-- Page content Wrapper -->

<link href="/assets/plugins/bootstrap-sweetalert/sweet-alert.css" rel="stylesheet" type="text/css">

<script src="/assets/plugins/bootstrap-sweetalert/sweet-alert.min.js"></script>

<script>

  function funcSuccessgetBallance (error){

      var result = JSON.parse(error);

      var balance = parseFloat(result).toFixed(8);

      $('#bls').html(balance);

  }

  function getBallance (){

      setInterval(function(){

          $.ajax ({

              url: '/ajax/balance',

              type: 'POST',

              data: {type: 'ajax'},

              dataType: 'html',

              success: funcSuccessgetBallance

          })

      }, 1000)

  }

  getBallance ();

</script>

<?php require_once(ROOT . "/views/" . LANG . "/layouts/_footer_c.php"); ?>
какая версия php стоит?
что отображается в логах ошибок?
 

Pluginshik

Участник
Что в логах ошибок?
В логах ошибок нет ничего насчет этого там есть какие-то другие ошики


2020/10/30 11:09:10 [warn] 31430#31430: *10191083 an upstream response is buffered to a temporary file /tmp/nginx_proxy_temp/0000311339 while reading upstream, client: 146.158.87.236, server: server, request: "GET /assets/fonts/ionicons.ttf?v=1.5.0 HTTP/2.0", upstream: "http://127.0.0.1:8080/assets/fonts/ionicons.ttf?v=1.5.0", host: "site", referrer: "https://site/assets/styles/icons.css
 

pligin

Команда форума
Администратор
В логах ошибок нет ничего насчет этого там есть какие-то другие ошики


2020/10/30 11:09:10 [warn] 31430#31430: *10191083 an upstream response is buffered to a temporary file /tmp/nginx_proxy_temp/0000311339 while reading upstream, client: 146.158.87.236, server: server, request: "GET /assets/fonts/ionicons.ttf?v=1.5.0 HTTP/2.0", upstream: "http://127.0.0.1:8080/assets/fonts/ionicons.ttf?v=1.5.0", host: "site", referrer: "https://site/assets/styles/icons.css
Не может такого быть, чтобы ошибки не было в логах.
Включи вывод ошибок и смотри сразу на страницах сайта
 

Pluginshik

Участник
Не может такого быть, чтобы ошибки не было в логах.
Включи вывод ошибок и смотри сразу на страницах сайта
Очистил базу и проверил добавив нового персонажа ругается на это

Fatal error: Unsupported operand types in /var/www/u1185895/data/www/site/components/Language.php on line 318

PHP:
self::$errs = $errs + array('s' => array(0 => 'Ошибка', 1 => 'Ошибка доступа', 2 => 'error'));
 

Pluginshik

Участник
Вот файл
PHP:
<?PHP

/**
* 
*/
class Language
{

    public static $errs = array();
    public static $title;
    public static $languages = array('ru');
    public static $defaultlanguage = 'ru';

    public static function setDefaultLanguage()
    {

        if (isset($_COOKIE['lang']))
        {
            if (array_search( $_COOKIE['lang'], self::$languages ) === FALSE) $_SESSION['lang'] = self::$defaultlanguage;

            else $_SESSION['lang'] = $_COOKIE['lang'];

        }
        else
        {
            $_SESSION['lang'] = self::$defaultlanguage;
            
            setcookie("lang", self::$defaultlanguage, time()+2592000);
        }

    }

    public static function setLanguage($lang)
    {

        $lang = self::checkLanguage($lang);

        setcookie("lang", $lang, time()+2592000);

        $_SESSION['lang'] = $lang;

    }

    public static function checkLanguage($lang)
    {

        if (array_search( $lang, self::$languages ) === FALSE) return self::$defaultlanguage;

        else return $lang;

    }

    public static function getTitle($module, $lang)
    {
        $method = $lang."Titles";

        self::$method($module);

        return self::$title;
    }
    
    public static function getErrors($module, $lang, $config = false, $params = false)
    {

        $lang = self::checkLanguage($lang);

        $method = $lang."Errors";

        self::$method($module, $config, $params);

        return self::$errs;
        
    }

    private static function ruTitles($module)
    {
        switch ($module) 
        {
            case 'MainNotFound':
                self::$title = 'Страница не найдена';
                break;
            case 'MainSuccess':
                self::$title = 'Успешно';
                break;
            case 'MainFail':
                self::$title = 'Ошибка';
                break;
            case 'MainIndex':
                self::$title = 'Главная';
                break;
            case 'MainAbout':
                self::$title = 'О проекте';
                break;
            case 'MainTerms':
                self::$title = 'Правила';
                break;
            case 'MainStats':
                self::$title = 'Статистика';
                break;
            case 'MainGuarantee':
                self::$title = 'Гарантии';
                break;
            case 'MainCompetitions':
                self::$title = 'Конкурсы';
                break;
            case 'MainFeedback':
                self::$title = 'Отзывы';
                break;
            case 'MainContacts':
                self::$title = 'Контакты';
                break;
            case 'MainLogin':
                self::$title = 'Авторизация';
                break;
            case 'MainSignup':
                self::$title = 'Регистрация';
                break;
            case 'MainRecovery':
                self::$title = 'Восстановить пароль';
                break;
            case 'AccountCabinet':
                self::$title = 'Мой кабинет';
                break;
            case 'AccountBrothel':
                self::$title = 'Мой мотопарк';
                break;
            case 'AccountLeaders':
                self::$title = 'Гонка лидеров';
                break;
            case 'AccountInsert':
                self::$title = 'Пополнение баланса';
                break;
            case 'AccountPayment':
                self::$title = 'Заказ выплаты';
                break;
            case 'AccountExchange':
                self::$title = 'Обмен баланса';
                break;
            case 'AccountInsertserfing':
                self::$title = 'Пополнение рекламного баланса';
                break;
            case 'AccountReferals':
                self::$title = 'Список рефералов';
                break;
            case 'AccountPartnership':
                self::$title = 'Партнерская программа';
                break;
            case 'AccountPromo':
                self::$title = 'Рекламные материалы';
                break;
            case 'AccountSettings':
                self::$title = 'Настройки аккаунта';
                break;
            case 'AccountQuests':
                self::$title = 'Оплачиваемые квесты';
                break;
            case 'AccountBonus':
                self::$title = 'Ежедневный бонус';
                break;
            case 'AccountCalculator':
                self::$title = 'Калькулятор дохода';
                break;
            case 'SerfingSerfing':
                self::$title = 'Сёрфинг сайтов';
                break;
            case 'SerfingAdd':
                self::$title = 'Панель управления сёрфингом';
                break;
        }
    }

    private static function ruErrors($module, $config, $params)
    {
        switch ($module) 
        {
            case 'SerfingAdd':
                $errs = array(
                    1 => array(0 => 'Ошибка', 1 => 'Ошибка данных', 2 => 'error'),
                    2 => array(0 => 'Ошибка', 1 => 'Неверный формат заголовка', 2 => 'error'),
                    3 => array(0 => 'Ошибка', 1 => 'Неверный формат ссылки', 2 => 'error'),
                    4 => array(0 => 'Успешно', 1 => 'Ссылка отправлена на модерацию', 2 => 'success'),
                    5 => array(0 => 'Успешно', 1 => 'Ссылка удалена', 2 => 'success'),
                    6 => array(0 => 'Успешно', 1 => 'Ссылка запущена', 2 => 'success'),
                    7 => array(0 => 'Успешно', 1 => 'Ссылка приостановлена', 2 => 'success'),
                    8 => array(0 => 'Успешно', 1 => 'Ссылка отредактирована', 2 => 'success'),
                    9 => array(0 => 'Ошибка', 1 => 'Недостаточно средств', 2 => 'error'),
                    10 => array(0 => 'Успешно', 1 => 'Ссылка пополнена', 2 => 'success'),
                    30 => 'ожидает модерации',
                    31 => 'запущен',
                    32 => 'приостановлен',
                    );
                break;
            case 'AccountSettings':
                $errs = array(
                    1 => array(0 => 'Успешно', 1 => 'Новый пароль успешно установлен', 2 => 'success'),
                    2 => array(0 => 'Ошибка', 1 => 'Пароль и повтор пароля не совпадают', 2 => 'error'),
                    3 => array(0 => 'Ошибка', 1 => 'Пароль имеет неверный формат', 2 => 'error'),
                    4 => array(0 => 'Ошибка', 1 => 'Старый пароль заполнен неверно', 2 => 'error'),
                    5 => array(0 => 'Успешно', 1 => 'Кошелек успешно привязан', 2 => 'success'),
                    6 => array(0 => 'Ошибка', 1 => 'Неверный формат кошелька', 2 => 'error'),
                    7 => array(0 => 'Ошибка', 1 => 'Кошелёк можно указать только 1 раз', 2 => 'error'),
                    10 => array(0 => 'Ошибка', 1 => 'Пароли не совпадают', 2 => 'error'),
                    12 => array(0 => 'Ошибка', 1 => 'Ошибка данных', 2 => 'error'),
                    13 => array(0 => 'Ошибка', 1 => 'Платёжная система временно недоступна', 2 => 'error'),
                    14 => array(0 => 'Ошибка', 1 => 'Неверный формат пин-кода (8 символов)', 2 => 'error'),
                    15 => array(0 => 'Ошибка', 1 => 'Пин-код можно установить только 1 раз', 2 => 'error'),
                    16 => array(0 => 'Успешно', 1 => 'Пин-код успешно установлен', 2 => 'success'),
                    );
                break;
            case 'AccountQuests':
                $errs = array(
                    6 => array(0 => 'Ошибка', 1 => 'Вы уже получали бонус', 2 => 'error'),
                    7 => array(0 => 'Ошибка', 1 => 'Условие квеста не выполнено', 2 => 'error'),
                    8 => array(0 => 'Успешно', 1 => 'Вам зачислен бонус в размере '.$config["serf_quest_bonus"].' руб.', 2 => 'success'),
                    9 => array(0 => 'Успешно', 1 => 'Вам зачислен бонус в размере '.$config["ref_quest_bonus"].' руб.', 2 => 'success'),
                    );
                break;
            case 'AccountBonus':
                $errs = array(
                    1 => array(0 => 'Ошибка', 1 => 'Ошибка данных', 2 => 'error'),
                    2 => array(0 => 'Успешно', 1 => 'Вам зачислен бонус в размере '.$params["sum"].' руб.', 2 => 'success'),
                    );
                break;
            case 'AccountExchange':
                $errs = array(
                    1 => array(0 => 'Ошибка', 1 => 'Ошибка данных', 2 => 'error'),
                    2 => array(0 => 'Ошибка', 1 => 'Минимальная сумма - 1 руб.', 2 => 'error'),
                    3 => array(0 => 'Ошибка', 1 => 'Недостаточно денег', 2 => 'error'),
                    4 => array(0 => 'Успешно', 1 => 'Обмен произошёл успешно', 2 => 'success'),
                    );
                break;
            case 'AccountPayment':
                $errs = array(
                    1 => array(0 => 'Ошибка', 1 => 'Перед заказом выплаты, необходимо указать пин код в настройках', 2 => 'error'),
                    2 => array(0 => 'Ошибка', 1 => 'Ошибка данных', 2 => 'error'),
                    3 => array(0 => 'Ошибка', 1 => 'Неверный формат пароля', 2 => 'error'),
                    4 => array(0 => 'Ошибка', 1 => 'Платёжная система временно недоступна', 2 => 'error'),
                    5 => array(0 => 'Ошибка', 1 => 'Перед заказом выплаты, необходимо установить кошелёк настройках', 2 => 'error'),
                    6 => array(0 => 'Ошибка', 1 => 'Неверный пин-код', 2 => 'error'),
                    7 => array(0 => 'Ошибка', 1 => 'Выплата доступна 1 раз в '.$config["pay_timeout"].' часа(ов)', 2 => 'error'),
                    8 => array(0 => 'Ошибка', 1 => 'Минимальная сумма для вывода '.$params["min_pay"].' руб.', 2 => 'error'),
                    9 => array(0 => 'Ошибка', 1 => 'Максимальная сумма для вывода '.$params["max_pay"].' руб.', 2 => 'error'),
                    10 => array(0 => 'Ошибка', 1 => 'Недостаточно средств для вывода', 2 => 'error'),
                    11 => array(0 => 'Успешно', 1 => 'Средства успешно выплачены', 2 => 'success'),
                    12 => array(0 => 'Ошибка', 1 => 'Внутренняя ошибка(1)', 2 => 'error'),
                    13 => array(0 => 'Ошибка', 1 => 'Внутренняя ошибка(2)', 2 => 'error'),
                    14 => array(0 => 'Ошибка', 1 => 'Внутренняя ошибка(3)', 2 => 'error'),
                    15 => array(0 => 'Ошибка', 1 => 'Внутренняя ошибка(4)', 2 => 'error'),
                    16 => array(0 => 'Успешно', 1 => 'Заявка успешно создана', 2 => 'success'),
                    20 => 'В обработке',
                    21 => 'Выполнена',
                    22 => 'Отменена',
                    23 => 'Ожидание',
                    );
                break;
            case 'AccountInsert':
                $errs = array(
                    1 => array(0 => 'Ошибка', 1 => 'Ошибка данных', 2 => 'error'),
                    2 => array(0 => 'Ошибка', 1 => 'Платёжная система временно недоступна', 2 => 'error'),
                    3 => array(0 => 'Ошибка', 1 => 'Минимальная сумма пополнения - '.$config["min_ins"].' руб.', 2 => 'error'),
                    4 => array(0 => 'Ошибка', 1 => 'Максимальная сумма пополнения - '.$config["max_ins"].' руб.', 2 => 'error'),
                    20 => 'В обработке',
                    21 => 'Выполнена',
                    );
                break;
            case 'AccountBrothel':
                $errs = array(
                    1 => array(0 => 'Ошибка', 1 => 'Ошибка данных', 2 => 'error'),
                    2 => array(0 => 'Ошибка', 1 => 'Недостаточно средств', 2 => 'error'),
                    3 => array(0 => 'Успешно', 1 => 'Покупка совершена', 2 => 'success'),
                    4 => array(0 => 'Успешно', 1 => 'Обмен произошёл успешно', 2 => 'success'),
                    );
                break;
            case 'MainFeedback':
                $errs = array(
                    1 => array(0 => 'Ошибка', 1 => 'Максимальное количество символов - 500', 2 => 'error'),
                    2 => array(0 => 'Ошибка', 1 => 'Максимальное количество отзывов на модерацию - 3', 2 => 'error'),
                    3 => array(0 => 'Успешно', 1 => 'Отзыв отправлен на модерацию', 2 => 'success'),
                    );
                break;
            case 'MainLogin':
                $errs = array(
                    1 => array(0 => 'Ошибка', 1 => 'Неверный формат логина/email', 2 => 'error'),
                    2 => array(0 => 'Ошибка', 1 => 'Неверный формат пароля', 2 => 'error'),
                    3 => array(0 => 'Ошибка', 1 => 'Пользователь с данным логином/email не найден', 2 => 'error'),
                    4 => array(0 => 'Ошибка', 1 => 'Неверный пароль', 2 => 'error'),
                    5 => array(0 => 'Ошибка', 1 => 'Ваш аккаунт заблокирован', 2 => 'error'),
                    6 => array(0 => 'Ошибка', 1 => 'Доступ запрещён', 2 => 'error'),
                    7 => array(0 => 'Успешно', 1 => 'Вы успешно авторизовались', 2 => 'success'),
                    );
                break;
            case 'MainSignup':
                $errs = array(
                    1 => array(0 => 'Ошибка', 1 => 'Неверный формат email', 2 => 'error'),
                    2 => array(0 => 'Ошибка', 1 => 'Неверный формат логина', 2 => 'error'),
                    3 => array(0 => 'Ошибка', 1 => 'Неверный формат пароля', 2 => 'error'),
                    4 => array(0 => 'Ошибка', 1 => 'Данный email занят', 2 => 'error'),
                    5 => array(0 => 'Ошибка', 1 => 'Данный логин занят', 2 => 'error'),
                    6 => array(0 => 'Ошибка', 1 => 'Пароли не совпадают', 2 => 'error'),
                    7 => array(0 => 'Ошибка', 1 => 'С данного IP уже проводилась регистрация', 2 => 'error'),
                    8 => array(0 => 'Успешно', 1 => 'Вы успешно зарегистрировались, данные для входа высланы на e-mail', 2 => 'success'),
                    9 => array(0 => 'Ошибка', 1 => 'Доступ запрещён', 2 => 'error'),
                    20 => array(0 => 'Ошибка', 1 => 'Заполните каптчу', 2 => 'error'),
                    21 => array(0 => 'Ошибка', 1 => 'Неправильная каптча2', 2 => 'error'),
                    );
                break;
            case 'MainRecovery':
                $errs = array(
                    1 => array(0 => 'Ошибка', 1 => 'Неверный формат email', 2 => 'error'),
                    2 => array(0 => 'Ошибка', 1 => 'Пользователь с данным email не найден', 2 => 'error'),
                    3 => array(0 => 'Ошибка', 1 => 'От вас уже поступали заявки в течении 24 часов', 2 => 'error'),
                    4 => array(0 => 'Успешно', 1 => 'Данные для сброса высланы вам на email', 2 => 'success'),
                    5 => array(0 => 'Ошибка', 1 => 'Возможно, вы ошиблись при вводе ссылки', 2 => 'error'),
                    6 => array(0 => 'Успешно', 1 => 'Новый пароль выслан вам на email', 2 => 'success'),
                    );
                break;
        }
        self::$errs = $errs + array('s' => array(0 => 'Ошибка', 1 => 'Ошибка доступа', 2 => 'error'));

    }


}
 

Pluginshik

Участник
Не срабатывает вот это а все остальные ошибки срабатывают
PHP:
case 'AccountBrothel':
                $errs = array(
                    1 => array(0 => 'Ошибка', 1 => 'Ошибка данных', 2 => 'error'),
                    2 => array(0 => 'Ошибка', 1 => 'Недостаточно средств', 2 => 'error'),
                    3 => array(0 => 'Успешно', 1 => 'Покупка совершена', 2 => 'success'),
                    4 => array(0 => 'Успешно', 1 => 'Обмен произошёл успешно', 2 => 'success'),
                    );
                break;
 
Верх