AntiBK/module/bank.php
Ivor Barhansky 36bf662112 code-upload (#1)
Upload code

Изменил(а) на 'README.md'

Изменил(а) на 'README.md'

Reviewed-on: https://src.lopar.us/lopar/AntiBK/pulls/1
Co-Authored-By: Ivor Barhansky <lopar@noreply.lopar.us>
Co-Committed-By: Ivor Barhansky <lopar@noreply.lopar.us>
2021-02-11 16:13:04 +00:00

366 lines
14 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?
defined('AntiBK') or die("Доступ запрещен!");
$id = getVar('id', 0);
$id2 = getVar('id2', 0);
?>
<script src="scripts/move_check.js" type="text/javascript"></script>
<script src="scripts/bank.js" type="text/javascript"></script>
<?
switch ($do)
{
case 'create':
$pass1 = getVar('pass1');
$pass2 = getVar('pass2');
if ($money < 3)
$char->error->Map(323, 3);
if ($pass1 == '')
$char->error->Map(301);
if ($pass2 == '')
$char->error->Map(324);
if ($pass1 != $pass2)
$char->error->Map(300);
$adb->query("INSERT INTO `character_bank` (`id`, `guid`, `password`)
VALUES (?d, ?d, ?s);", $id ,$guid ,SHA1($id.':'.$pass1));
$char->history->Bank($id, '', '', '', 1);
if (!($char->changeMoney(-3)))
$char->error->Map(107);
$char->error->Map(318, $id);
break;
case 'login':
$char->error->Map($char->bank->Login($id, $pass));
break;
case 'check':
if (empty($_SESSION['bankСredit']))
$char->error->Map();
$credit = $adb->selectRow("SELECT `id`,
`cash`,
`euro`
FROM `character_bank`
WHERE `id` = ?d
and `guid` = ?d", $_SESSION['bankСredit'] ,$guid) or $char->error->Map(322);
ArrToVar($credit);
if (isset($_POST['add_kredit']))
{
$add_sum = getVar('add_sum', 0, 11);
if (!($char->changeMoney(-$add_sum)))
$char->error->Map(107);
$char->bank->Money(-$add_sum, $id);
$char->history->Bank($id, '', $add_sum, '', 2);
$char->error->Map(319, "$add_sum|$id");
}
else if (isset($_POST['get_kredit']))
{
$get_sum = getVar('get_sum', 0, 11);
$char->bank->Money($get_sum, $id);
$char->changeMoney($get_sum);
$char->history->Bank($id, '', $get_sum, '', 3);
$char->error->Map(320, "$get_sum|$id");
}
else if (isset($_POST['transfer_kredit']))
{
$trf_sum = getVar('transfer_sum', 0, 11);
if ($level < 8)
$char->error->Map(306);
if ($id == $id2)
$char->error->Map(307);
if ($trf_sum < 1)
$char->error->Map(309);
$credit2_guid = $adb->selectCell("SELECT `guid` FROM `character_bank` WHERE `id` = ?d", $id2) or $char->error->Map(303);
$char->bank->Money($trf_sum, $id);
$trfed_sum = rdf($trf_sum * 0.97);
$char->bank->Money(-$trfed_sum, $id2, '', $credit2_guid);
$char->history->Bank($id, $id2, $trfed_sum, '', 4);
$char->history->Bank($id2, $id, $trfed_sum, '', 5);
$to_owner = $char->getLogin('name', $credit2_guid);
$char->error->Map(321, "$trfed_sum|$to_owner|$id2|$id");
}
else if (isset($_POST['convert_ekredit']))
{
$convert_sum = getVar('convert_sum', 0, 11);
if (checki($convert_sum))
$char->error->Map(327);
if ($euro < $convert_sum)
$char->error->Map(310, $convert_sum);
$converted_sum = $convert_sum * 30;
$char->bank->Money($convert_sum, $id, 'euro');
$char->bank->Money(-$converted_sum, $id);
$char->history->Bank($id, '', $converted_sum, $convert_sum, 6);
$char->error->Map(308, "$convert_sum|$id|$converted_sum");
}
else if (isset($_POST['change_psw']))
{
$new_psw = getVar('new_psw');
$new_psw2 = getVar('new_psw2');
if ($new_psw == "")
$char->error->Map(315);
if ($new_psw2 == "")
$char->error->Map(316);
if ($new_psw != $new_psw2)
$char->error->Map(317);
$adb->query("UPDATE `character_bank` SET `password` = ?s WHERE `id` = ?d", SHA1 ($id.':'.$new_psw) ,$id) or $char->error->Map(312);
$char->error->Map(311);
}
else if (isset($_POST['save_notepad']))
{
$notepad = getVar('notepad');
$notepad = str_replace ("\n", "<br>", $notepad);
$char->setChar('char_info', array('bank_note' => $notepad)) or $char->error->Map(314);
$char->error->Map(313);
}
$char->error->Map();
break;
case 'logout':
$char->bank->unLogin();
$char->error->Map();
break;
case 'delete':
$del1 = $adb->query("DELETE FROM `character_bank` WHERE `id` = ?d", $_SESSION['bankСredit']);
$del2 = $adb->query("DELETE FROM `history_bank` WHERE `credit` = ?d", $_SESSION['bankСredit']);
unset($_SESSION['bankСredit']);
$char->error->Map();
break;
}
?>
<table width="100%" border="0" cellpadding="0" cellspacing="1">
<tr>
<td valign='top' nowrap width="100%"><h3>Банк</h3></td>
<td align="right" valign='top' nowrap>
<?getUpdateBar();?>
<table width="148" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEDEDE">
<tr>
<td bgcolor="#D3D3D3"><img src="img/links.gif" width="9" height="7" /></td>
<td bgcolor="#D3D3D3" nowrap><a href="main.php?action=go&room_go=fairstreet" class="passage" alt="<?echo $char->city->getRoomOnline('fairstreet', 'mini');?>">Страшилкина улица</a></td>
</tr>
</table>
</td>
</tr>
</table>
<font color='red' id='error'><?$char->error->getFormattedError($error, $parameters);?></font>
<?
if (empty($_SESSION['bankСredit']))
{
$deist = getVar('deist');
if ($deist != "new")
{
$rows = $adb->selectCol("SELECT `id` FROM `character_bank` WHERE `guid` = ?d", $guid);
?>
<br>
Мы предоставляем следующие услуги:
<ol>
<li>Открытие счета
<li>Возможность положить/снять кредиты/еврокредиты со счета
<li>Перевести кредиты/еврокредиты с одного счета на другой
<li>Обменный пункт. Обмен еврокредитов на кредиты
</ol>
Хотите открыть свой счет? Услуга платная: 3.00 кр. <input class='nav' type="button" value="Открыть счёт" id='link' link='none&deist=new' />
<?
if ($rows)
{
?>
<form action="?do=login" name="F2" method="post">
<table>
<td>
<fieldset><legend><b>Управление счетом</b></legend>
<table>
<tr>
<td>Номер счета</td>
<td colspan="2">
<select name="id" size="0" style="width: 90px;">
<? foreach ($rows as $num => $id)
echo "<option value='$id'>$id</option>";
?> </select>
</td>
</tr>
<tr>
<td>Пароль</td>
<td><input style='width: 90px;' type="password" name="pass"></td>
</tr>
<tr><td colspan="3" align="center"><input class="nav" type="submit" value="Войти" name="enter"></td></tr>
</table>
</fieldset>
</td>
</table>
</form>
<?
}
}
else
{
if ($money < 3)
$char->error->Map(323, 3);
$maxid = ($adb->selectCell("SELECT MAX(`id`) FROM `character_bank`;")) + 1;
?>
<h4>Открытие счета</h4>
Запишите номер вашего счета: <b><?echo $maxid;?></b><br>
Номер счета и пароль строго привязаны только к вашему персонажу. Только персонаж <b><?echo $login;?></b> может использовать этот счет, никто другой, даже зная ваш номер и пароль, не получит доступа к нему!<br>
<form action='?do=create' name='newcredit' method="post"><br>
<input type="hidden" name="id" value="<?echo $maxid;?>">
<table>
<tr><td>Придумайте пароль к счету<br><input type='password' name='pass1' size="20"></td></tr>
<tr><td>Введите пароль повторно<br><input type='password' name='pass2' size="20"></td></tr>
<tr><td>Вы заплатите: <b>3.00</b> кр.</td></tr>
<tr><td><input type='submit' value='Открыть счет' class='nav'></td></tr>
</table>
</form>
<?
}
}
else
{
$bank_info = $adb->selectRow("SELECT `id`,
`cash`,
`euro`
FROM `character_bank`
WHERE `id` = ?d", $_SESSION['bankСredit']);
ArrToVar($bank_info);
$note = $adb->selectCell("SELECT `bank_note` FROM `character_info` WHERE `guid` = ?d", $guid);
$note = str_replace(array("<br>", '\&quot;', "\'"), array("\n", '"', "'"), $note);
$m_dis = ($money == 0) ?" disabled" :"";
$g_dis = ($cash == 0) ?" disabled" :"";
$e_dis = ($euro == 0) ?" disabled" :"";
?>
<table width="100%">
<tr>
<td valign="top" width="30%"><h4>Управление счетом</h4> &nbsp;<b>Счёт №:</b> <?echo $id;?> <a href="?do=logout" title="Окончить работу c текущим счетом" class="nick">[x]</a></td>
<td valign="top" align="center" width="17%">
<fieldset>
<legend><b>У вас на счету</b></legend>
<table>
<tr><td>Кредитов:</td><td><b><?echo $cash;?> кр.</b></td></tr>
<tr><td>Еврокредитов:</td><td><b><?echo $euro;?> екр.</b></td></tr>
<tr><td colspan="2"><hr></td></tr>
<tr><td>При себе наличных:</td><td><b><?echo getMoney($money);?> кр.</b></td></tr>
</table>
</fieldset>
</td>
<td valign="top" align="right" width="30%"><Font color="red">Внимание!</font> Некоторые услуги банка платные, о размере взымаемой комиссии написано в соответствующем разделе.</td>
</tr>
</table>
<form action='?do=check' name='credit' method='post'>
<table cellspacing="5" width="100%">
<tr>
<td valign="top" width="53%">
<fieldset>
<legend><b>Пополнить счет</b></legend>
Сумма <input type="text" name="add_sum" size="6" maxlength="10"<?echo $m_dis;?>> кр. <input type="submit" class="nav" name="add_kredit" value="Положить кредиты на счет"<?echo $m_dis;?>><br>
</fieldset>
</td>
<td valign="top" width="47%">
<fieldset>
<legend><b>Снять со счета</b></legend>
Сумма <input type="text" name="get_sum" size="6" maxlength="10"<?echo $g_dis;?>> кр. <input type="submit" class="nav" name="get_kredit" value="Снять кредиты со счета"<?echo $g_dis;?>><br>
</fieldset>
</td>
</tr>
<tr>
<td valign="top">
<fieldset>
<legend><b>Перевести кредиты на другой счет</b></legend>
Сумма <input type="text" name="transfer_sum" size="6" maxlength="10"<?echo $g_dis;?>> кр.<br>
Номер счета куда перевести кредиты <input type="text" name="id2" size="12" maxlength="15"<?echo $g_dis;?>><br>
<input type="submit" class="nav" name="transfer_kredit" value="Перевести кредиты на другой счет"<?echo $g_dis;?>><br>
Комиссия составляет <b>3.00 %</b> от суммы, но не менее <b>1.00 кр</b>.
</fieldset>
</td>
<td valign="top">
<fieldset>
<legend><b>Курс еврокредита к мировой валюте</b></legend>
Данные на <?echo DATE_NO_SEC;?><br>
1 екр. = <b>1.2552</b> долларов США<br>
1 екр. = <b>1.0000</b> ЕВРО<br>
1 екр. = <b>9.9431</b> укр. гривен<br>
1 екр. = <b>0.8616</b> англ. фунтов стерлингов<br>
1 екр. = <b>37.7282</b> российских рублей<br>
</fieldset>
</td>
</tr>
<tr>
<td valign="top">
<fieldset>
<legend><b>Обменный пункт</b></legend>
Обменять еврокредиты на кредиты.<br>
Курс <b>1 екр.</b> = <b>30.00 кр.</b><br>
Сумма <input type="text" name="convert_sum" size="6" maxlength="10"<?echo $e_dis;?>> екр.
<input type="submit" class="nav" name="convert_ekredit" value="Обменять"<?echo $e_dis;?>>
</fieldset>
</td>
<td></td>
</tr>
<tr>
<td valign="top">
<fieldset>
<legend><b>Настройки</b></legend>
<b>Сменить пароль</b><br>
<table>
<tr>
<td>Новый пароль</td>
<td><input type="password" name="new_psw"></td>
</tr>
<tr>
<td>Введите новый пароль повторно</td>
<td><input type="password" name="new_psw2"></td>
</tr>
</table>
<input type="submit" class="nav" name="change_psw" value="Сменить пароль"><br>
<?echo ($cash == 0 && $euro == 0) ?'<hr>Т.к. ваш счет с нулевым балансом, вы можете его в любой момент закрыть <input class="nav" type="button" name="close" value="Закрыть счет"><br>' :"";?>
</fieldset>
</td>
<td valign="top">
<fieldset>
<legend><b>Последние операции</b></legend>
<table cellpadding="2" cellspacing="0" border="0">
<? $rows = $adb->select("SELECT `credit2`,
`cash`,
`euro`,
`operation`,
`date`
FROM `history_bank`
WHERE `credit` = ?d
ORDER BY `id` DESC
LIMIT 0, 10;", $_SESSION['bankСredit']);
foreach ($rows as $hist)
{
vprintf("<tr><td><font class='date'>".date('d.m.y H:i', $hist['date'])."</font> ".$lang['bank_'.$hist['operation']]."</td></tr>", $hist);
}
?>
</table>
</fieldset>
</td>
</tr>
<tr>
<td colspan="2" valign="top">
<fieldset>
<legend><b>Записная книжка</b></legend>
Здесь вы можете записывать любую информацию для себя. Номера счетов друзей, кто кому чего должен и прочее. Записная книжка общая для всех счетов.<br>
<textarea name="notepad" rows="10" cols="67" style="width: 100%;"><?echo $note;?></textarea><br>
<input type="submit" class="nav" name="save_notepad" value="Сохранить изменения">
</fieldset>
</td>
</tr>
</table>
</form>
<?
}
?>