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"); ?>