Файл: forum_php/billing/index.php
Строк: 284
<?php
include '../system/sys.php';
include '../system/funcs.php';
$query = DB :: $dbs -> query ("SELECT * FROM `billing_wm` WHERE `id_us`=?", array ($us['id']));
$wm = $query -> fetch ();
$modules = (isset($_GET['modules']) AND !empty($_GET['modules'])) ? htmlspecialchars($_GET['modules']) : false;
switch ($modules) {
default:
if ($us == false){
header ('location: /');
exit;
}
H ('Биллинг', '<a href="/kab"/>Кабинет</a>');
if($modules == 'save'){
echo '<div class="list1"><b>Успешно выполнено!</b></div>';
}
elseif($modules == 'error'){
echo '<div class="list1"><b style="color:red;">При операции возникла ошибка!</b></div>';
}
echo '<div class="list1">>> Мой баланс: '.$us['money'].'р </div>';
echo '<div class="list1">>><a href="?modules=pey"/> Пополнение баланса</a></div>';
echo '<div class="list1">>><a href="?modules=vyvod"/> Запросить вывод</a></div>';
echo '<div class="list1">>><a href="?modules=perevod"/> Перевод средств</a></div>';
echo '<div class="menu2"><b>Список услуг:</b></div>';
echo '<div class="list1"><a href="?modules=wm">>> Подтверждение реквизитов</a></div>';
echo '<div class="list1"><a href="?modules=lip">>> Прикрепить тему</a></div>';
echo '<div class="list1"><a href="?modules=rekl">>> Заказать рекламу</a></div>';
echo '<div class="list1"><a href="?modules=icon">>> Иконка возле ника</a></div>';
echo '<div class="list1"><a href="?modules=gradient">>> Градиент нику</a></div>';
echo '<div class="list1"><a href="?modules=history">>> История операций</a></div>';
F ();
break;
case 'pey':
if ($us == false){
header ('location: /');
exit;
}
H ('Биллинг', '<a href="/billing/"/>Биллинг</a> | <b style="color:black;"> Пополнение баланса</b>');
echo '<div class="list1">Баланс пополняется переводом средств на реквизиты WebMoney через сервис Web Merchant Interface<br /> Укажите сумму, на которую вы хотите пополнить баланс и следуйте указаниям системы</div>';
echo '<div class="list1"><form action="?modules=pey_ok" method="post">';
echo 'Сумма (1-1000):<br /><input name="money" maxlength="7" title="Сумма"/> Рублей<br/>';
echo '<input type="submit" value="Продолжить"/></form></div>';
F ();
break;
case 'pey_ok':
if ($us == false){
header ('location: /');
exit;
}
H ('Биллинг', '<a href="/billing/"/>Биллинг</a> | <b style="color:black;"> Пополнение баланса</b>');
$money = abs(intval($_POST['money']));
if($money=='' || $money<1 || $money>1000){
echo '<div class="list1">Неправильная сумма!</div>';
F ();
exit;
}
$code = rand(11111111,99999999);
if(DB :: $dbs -> query ("INSERT INTO `billing_pey` (`money`,`us`,`code`,`time`) VALUES (?,?,?,?)", array ($money,$us['id'],$code,time()))){
$num = DB :: $dbs -> lastInsertId ();
echo '<div class="list1">Отправьте сумму <b>'.$money.'р</b> на кошелёк R870285718912, в примечаниях запишите Оплата счёта пользователя <b>ВАШ_НИК</b>. Баланс будет пополнен в течение 24 часов. </div> ';
}
else
{
echo 'Ошибка';
}
F ();
break;
case 'web_pey':
if ($us == false){
header ('location: /');
exit;
}
H ('Биллинг', '<a href="/billing/"/>Биллинг</a> | <b style="color:black;"> Пополнение баланса</b>');
error_reporting(0);
$code = ($_POST['LMI_PAYMENT_NO']);
$pey = DB::$dbs->query("SELECT * FROM `billing_pey` where `code` = ? limit 1",array($code))->fetch();
$post = ($_POST['LMI_PAYMENT_AMOUNT']);
if($pey['money'] <> $post ) {
$err=1;
echo "ERR: НЕВЕРНАЯ СУММА ".$_POST['LMI_PAYMENT_AMOUNT'];
exit;
}
if(trim($_POST['LMI_PAYEE_PURSE'])!="R870285718912") {
$err=1;
echo "ERR: НЕВЕРНЫЙ КОШЕЛЕК ПОЛУЧАТЕЛЯ";
exit;
}
if(empty($err)){ echo "YES";
}
IF($_POST['LMI_PREREQUEST']==1) {
}ELSE {
$number = DB::$dbs->queryFetch("SELECT * FROM `billing_pey` where `code` = ? limit 1",array($code));
if($number == TRUE){
$wmid = ($_POST['LMI_PAYER_WM']);
$text = 'Пополнение баланса';
DB :: $dbs -> query ("UPDATE `billing_pey` SET `see` = ?, `text` = ?, `type` = ? WHERE `code` = ? ",array (1,$text,1,$number['code']));
DB :: $dbs -> query ("UPDATE `us` SET `money` = `money` + ? WHERE `id` = ? ",array ($number['money'],$number['us']));
$wmid = $_POST['LMI_PAYER_WM'];
$w = DB::$dbs->query("SELECT * FROM `billing_wm` where `id_us` = ? AND `type` = ? limit 1",array($number['us'],0))->fetch();
if($w['wmid'] == $wmid) {
DB :: $dbs -> query ("UPDATE `billing_wm` SET `type` = ? WHERE `id_us` = ? ",array (1,$number['us']));
}
}
}
break;
case 'wm':
if(!isset($_GET['go'])){
echo'<div class="lst"><form action="?modules=wm&go" method="post">
WMID:<br/>';
echo'<input type="text" '.(($wm['wmid']==NULL)?NULL:'disabled="disabled" value="'.$wm['wmid'].'"').' name="wmid"/><br/>
WMR кошелёк:<br/>
<input type="text" name="wmr" '.(($wm['wmr']==NULL)?'value=""':'disabled="disabled" value="R'.$wm['wmr'].'"').'/><br/>
'.((empty($wm['wmr']) && empty($wm['wmid']))?'<b><small>он должен принадлежать вышеуказанному WMID.<br/>Будьте внимательны, эти данные потом нельзя изменить!</small></b><br/>
<input type="submit" value="Сохранить"/>':' '.($wm['type'] ==0?'<a href="?modules=pey"><input type="button" value="Подтвердить" /></a>':NULL).' ').'</div>';
}
else
{
$wmid = (isset($_POST['str'])) ? abs($_POST['wmid']): TRUE;
$wmr = (isset($_POST['wmr'])) ? (int)$_POST['wmr'] : TRUE;
if (empty($wmid) OR empty($wmr))
{
echo '<div class="list1">Вы не ввели WMID или WMR кошелёк!</div>';
$error = true;
}
if(strlen($wmid) > 12 or strlen($wmr) < 12)
{
echo '<div class="list1">Невозможная длина WMID и WMR кошелька!</div>';
$error = true;
}
if(!is_numeric($_POST['wmid']) OR !is_numeric($_POST['wmr'])){
echo '<div class="list1">Буквы в данных?! o_O</div>';
$error = true;
}
if($error == false)
{
DB::$dbs->query("INSERT INTO `billing_wm` (`id_us`,`wmid`,`wmr`) VALUES (?,?,?)",array($us['id'],$_POST['wmid'],$wmr));
header('refresh:1; url=?modules=save');
}
}
F ();
break;
case 'gradient': # С НУЛЯ ПИСАТЬ
if ($us == false){
header ('location: /');
exit;
}
H ('Биллинг', '<a href="/billing/"/>Биллинг</a> | <b style="color:black;"> Градиент ника</b>');
if($us['money']<30){
echo'<div class="error">У вас недостаточно денег! Цена услуги: 30 рублей</div>';
}elseif(isset($_REQUEST['submit'])){
DB :: $dbs -> query ("UPDATE `us` SET `money` = `money` - ?, `nickcolor1` = ?, `nickcolor2` = ? WHERE `id` = ? ",array (30,str_replace('#', '', $_POST['color1']),str_replace('#', '', $_POST['color2']),$us['id']));
echo'<div class="list1">Услуга успешно активирована!</div>';
}else{
if($us['nickcolor1']!=NULL || $us['nickcolor2']!=NULL)echo'<div class="list1">У вас включен градиент ника! При повторной активации услуги нынешний градиент будет заменен!</div>';
echo '<div class="lst"><b>Цена</b>: 30 рублей</div>
<div class="lst">
<form action="" method="post">
Цвeт #1(Начало)<br />
<input type="text" name="color1" maxlength="9" value="'.($us['nickcolor1']!=NULL?$us['nickcolor1']:'').'"/><br/>
Цвeт #2(Конец)<br />
<input type="text" name="color2" maxlength="9" value="'.($us['nickcolor2']!=NULL?$us['nickcolor2']:'').'"/><br/>
<input type="submit" name="submit" value="Продолжить"/>
</form></div>';
}
F ();
break;
case 'icon':
$bill_set = DB :: $dbs -> queryFetch("SELECT * FROM `billing_set` WHERE `id`=?", array (1));
echo '<div class="lst">Стоимость установки иконки: <b>'.$bill_set['icon'].'р.</b><br/>все следущие смены иконки <b>бесплатны.</b></div>';
if (isset($_POST['upload'])) {
$FileName = $_FILES['file']['name'];
$FileSize = $_FILES['file']['size'];
$GetExt = array('.gif','.jpeg','.jpg','.png');
$newfotorazmer = GetImageSize($_FILES['file']['tmp_name']);
$width = $newfotorazmer[0];
$height = $newfotorazmer[1];
$ext = strtolower(strrchr($_FILES['file']['name'], '.'));
if (DB::$dbs->querySingle("SELECT COUNT(id) FROM `us` WHERE `icon_col` = ? AND `id` = ?",array(0,$us['id']))){
if($us['money']<$bill_set['icon']){
$err[] = 'Недостаточно средств на баллансе!';
}
}
if ($FileSize > 1024 * 2 * 1024) $err[] = 'Размер файла более 2 Мб!';
if(empty($FileName)) $err[] = 'Выберите файл.';
if($width>16 && $height>16) $err[] = 'Иконка должна быть 16х16 пикселей!';
if(preg_match('/(.php|.pl|.htaccess)/i', $FileName) || !in_array($ext, $GetExt)) $err[] = 'Запрещенный формат файла!';
$file = 'icon_'.$us['id'].'_'.mt_rand(1000,9999).$ext;
if(empty($err)){
copy($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . '/files/icon/' . $file);
DB::$dbs->query("UPDATE `us` SET `icon` = ? WHERE `id` = ? LIMIT 1",array($file,$us['id']));
if(DB::$dbs->querySingle("SELECT COUNT(id) FROM `us` WHERE `icon_col` = ? AND `id` = ?",array(0,$us['id']))){
DB::$dbs->query("UPDATE `us` SET `count_icon` = ? WHERE `id` = ? LIMIT 1",array(1,$us['id']));
DB::$dbs->query("UPDATE `us` SET `money` = `money` - ? WHERE `id` = ? LIMIT 1",array($bill_set['icon'],$us['id']));
}
DB::$dbs->query("UPDATE `us` SET `count_icon` = ? WHERE `id` = ? LIMIT 1",array(1,$us['id']));
DB::$dbs->query("UPDATE `us` SET `money` = `money` - ? WHERE `id` = ? LIMIT 1",array($bill_set['icon'],$us['id']));
echo '<div class="lst"><b>Успешно установлено!</b></div>';
} else {
echo '<div class="lst">';
foreach($err as $error) {
echo '<b>'.$error.'</b><br/>';
}
echo '</div>';
}
}
echo '<div class="lst"><form action="?modules=icon" method="post" enctype="multipart/form-data">Файл [PNG,GIF,JPG,JPEG / 16x16 px]:<br/>
<input name="file" type="file"/><br/>
<input type="submit" name="upload" value="Загрузить"></form></div>';
F ();
break;
case 'vyvod':
echo '<div class="lst">Для вывода денег пишите создателю</div>';
F ();
break;
case 'rekl': //Fixed
$bill_set = DB :: $dbs -> queryFetch("SELECT * FROM `billing_set` WHERE `id`=?", array (1));
if (isset($_POST['ok'])) {
$url = htmlspecialchars(trim($_POST['url']));
$name = htmlspecialchars(trim($_POST['name']));
$gde = htmlspecialchars(trim($_POST['gde']));
$time_off = intval($_POST['time_off']);
$bb = htmlspecialchars(trim($_POST['bb']));
$color = htmlspecialchars(trim($_POST['color']));
$color2 = htmlspecialchars(trim($_POST['color2']));
if(empty($color)) $color = $color2;
if(empty($time_off) || $time_off<1) $err = 'Минимальный срок размещения рекламы <b>7 сутok</b><br />';
if(!empty($bb)) $cena_bb = $bill_set['bb'] * $time_off;
else $cena_bb = 0;
if(!empty($color)) $cena_color = $bill_set['color'] * $time_off;
else $cena_color = 0;
$link_name1 = $name;
if ($gde == 'index') {
$rekl = $bill_set['index'];
} elseif ($gde == 'all') {
$rekl = $bill_set['all'];
}
$cena = ($rekl * $time_off) + $cena_bb + $cena_color;
$link_name1 = (empty($color) ? $link_name1 : '<font color="#'.$color.'">'.$link_name1.'</font>');
$link_name = (empty($bb) ? $link_name1 : '<'.$bb.'>'.$link_name1.'</'.$bb.'>');
if ($us['money']<$cena) {
$err[] = 'У вас недостаточно средств на баллансе!';
}
$times_off = time() + ($time_off * 24 * 60 * 60);
if (empty($err)) {
DB::$dbs->query("INSERT INTO billing_rekl SET url = ?, name = ?, time = ?, time_off = ?, type = ?, user_id = ?, gde = ?, money = ?",array($url,$link_name,time(),$times_off,0,$us['id'],$gde,$cena));
DB::$dbs->query("UPDATE us SET money = money - ? WHERE id = ? LIMIT 1",array($cena,$us['id']));
echo '<div class="access">Ваша реклама добавлена и отправлена на модерацию!</div>';
} else {
echo '<div class="lst">';
foreach ($err as $err_info) {
echo $err_info.'<br/>';
}
echo '</div>';
}
}
echo '<div class="lst"><b>Реклама WM проектов, лохотронов, реф. ссылок и прочего НЕ проходят модерацию, чем больше срок - тем больше скидка.</b></div>';
echo '<div class="lst">Стоимость рекламы:<br/>
<b>* Главная страница: '.$bill_set['index'].'p. (в сутки) </b><br/><b>* Все страницы: '.$bill_set['all'].'p. (в сутки)</b><form action="?modules=rekl" method="POST">Название:<br/><input type="text" name="name"/><br/>Адрес (без http://):<br/><input type="text" name="url"/><br/>Время:<br/><input type="text" name="time_off"/> суток<br/>Где:<br/><select name="gde"><br/><option value="index">Верх главной</option><option value="all">Верх всех страниц</option></select><br/>Цвет (+'.$bill_set['color'].'р):<br/><input type="text" name="color"/><br/>Пример: FF0000<br/><input type="radio" name="bb" value="b"/> Жирность (+'.$bill_set['bb'].'р)<br/><br/><input type="submit" name="ok" value="Добавить"/></form></div>';
F ();
break;
case 'lip':
if(isset($_POST['send_lip'])) {
$cena_lep = '3';
$time_lep = intval($_POST['show_lip']);
$time_lep_last = time()+60*60*$time_lep;
$lep_sum = $time_lep*$cena_lep;
$pid = (isset($_POST['thema'])) ? (int)abs($_POST['thema']) : TRUE;
$thema = DB :: $dbs -> query ("SELECT id,type,us FROM `forum_t` WHERE `id`=?", array ($pid))->fetch();
if($thema['id'] == null) {
echo '<div class="error"> Такой темы нету...</div>';
$error = true;
}
if($thema['type'] == 0) {
echo '<div class="error">Тема закрыта, либо удалена</div>';
$error = true;
}
if($thema['us'] != $us['id']){
echo '<div class="error">Вы не автор темы!</div>';
$error = true;
}
if($us['money']<$lep_sum){
echo '<div class="error">У Вас не достаточно средств для совершения операции!</div>';
$error = true;
}
if(!is_numeric($_POST['thema'])){
echo '<div class="error"> Буквы в данных? о_О</div>';
$error = true;
}
if($error == false) {
$code = rand(11111111,99999999);
$value = 'Покупка липкой темы для [url=/forum/thema'.$_POST['thema'].']темы[/url] [br] Дата окончания - [b]'.date ('d.m.Y в H:i:s', $time_lep_last) . '[/b]!';
DB :: $dbs -> query ("INSERT INTO `billing_pey` (`money`,`us`,`code`,`text`,`type`,`see`,`time`) VALUES (?,?,?,?,?,?,?)", array ($lep_sum,$us['id'],$code,$value,2,1,time()));
DB :: $dbs -> query ("UPDATE `us` SET `money` = `money` - ? WHERE `id` = ? ",array($lep_sum,$us['id']));
DB :: $dbs -> query ("UPDATE `forum_t` SET `lip_time` = ? WHERE `id` = ? ",array($time_lep_last,$thema['id']));
DB :: $dbs -> query ("UPDATE `forum_t` SET `lip_them` = ? WHERE `id` = ? ",array(1,$thema['id']));
header('location: ?modules=save');
}
}
echo '<div class="list1"><b>Стоимость за час - 3 рубля</b></div>';
echo '<div class="lst"><form method="post" action="?modules=lip"><b>ID темы</b>:<br/><input type="text" name="thema" value="1"><br/>';
echo '<b>Приклеить на:</b><br/><select name="show_lip"><option value="1">1 час</option><option value="3">3 часа</option><option value="5">5 часов</option><option value="7">7 часов</option><option value="12">12 часов</option><option value="18">18 часов</option><option value="24">24 часа</option></select><br/>';
echo '<input type="submit" name="send_lip" value="Приклеить"></form></div>';
F ();
break;
case 'history':
if ($us == false){
header ('location: /');
exit;
}
H ('Биллинг', '<a href="/billing/"/>Биллинг</a> | <b style="color:black;"> История операций</b>');
$h = DB::$dbs->querySingle("SELECT count(id) FROM `billing_pey` where `us` = ?",array($us['id']));
$items_per_page = 10;
$pages = ceil ( $h / $items_per_page );
if ($page < 1) {
$page = 1;
}
if ($page > $pages) {
$page = $pages;
}
$start = $page * $items_per_page - $items_per_page;
if($h==0){echo'<div class="error">Вы не провили ещё ни одной операции...</div>';}else{
$history = DB::$dbs->query("SELECT * FROM `billing_pey` where `us` = ? order by `id` DESC LIMIT $start, $items_per_page",array($us['id']));
while($hi = $history -> fetch()){
echo '<div class="list1">'.datef ($hi['time']).' <b style="color:'.($hi['type'] == 1?'green">+':'red">-').' '.$hi['money'].'</b></div>';
echo '<div class="lst">';
if(!empty($hi['text'])) {echo bb($hi['text']); }
else { echo 'ERR:Тип оплаты потерян';}
echo '<br/>';
echo 'Статус: <b style="color:'.($hi['see'] == 1?'green">Оплачен':'red">В ожидании').'</b></div>';
}
pages('?');
}
F ();
break;
case 'perevod':
if ($us == false){
header ('location: /');
exit;
}
H ('Биллинг', '<a href="/billing/"/>Биллинг</a> | <b style="color:black;"> Перевод средств</b>');
echo '<div class="list1">Минимум 1 wmr, комиссии за перевод не взимается. || У вас '.$us['money'].'р)</div>';
if(isset($_POST['send_money'])) {
$pus = (isset($_POST['us'])) ? (int)abs($_POST['us']) : TRUE;
$pmoney = (isset($_POST['money'])) ? (int)abs($_POST['money']) : TRUE;
if(empty($pus) or empty($pmoney)) {
echo '<div class="error"> Вы не ввели сумму перевода либо ID пользователя</div>';
$error = true;
}
$u = DB :: $dbs -> query("SELECT `id` FROM `us` WHERE `id` = ?", array ($pus))->fetch();
if($u == null) {
echo '<div class="error">ID пользователя не найден!</div>';
$error = true;
}
if(!is_numeric($_POST['us']) OR !is_numeric($_POST['money'])){
echo '<div class="error"> Буквы в данных? о_О</div>';
$error = true;
}
if($us['money']<$pmoney){
echo '<div class="error">У Вас не достаточно средств для перевода!</div>';
$error = true;
}
if($error == false) {
$code = rand(11111111,99999999);
$value = 'Перевод средств пользователю -> us{'.$pus.'}';
DB :: $dbs -> query ("INSERT INTO `billing_pey` (`money`,`us`,`code`,`text`,`type`,`see`,`time`) VALUES (?,?,?,?,?,?,?)", array ($pmoney,$us['id'],$code,$value,2,1,time()));
$value = 'Перевод средств от пользователя -> us{'.$us['id'].'}';
DB :: $dbs -> query ("INSERT INTO `billing_pey` (`money`,`us`,`code`,`text`,`type`,`see`,`time`) VALUES (?,?,?,?,?,?,?)", array ($pmoney,$pus,$code,$value,1,1,time()));
$value = 'us{'.$us['id'].'} перевёл вам [url=/billing/?modules=history]'.$pmoney.'р)[/url]!';
DB::$dbs->query("INSERT INTO `action` set `value` = ?, `t` = ?, `us` = ?, `see` = ? ",array($value,time(),$pus,1));
DB :: $dbs -> query ("UPDATE `us` SET `money` = `money` - ? WHERE `id` = ? ",array($pmoney,$us['id']));
DB :: $dbs -> query ("UPDATE `us` SET `money` = `money` + ? WHERE `id` = ? ",array($pmoney,$pus));
}
header('location: /billing/?modules=save');
}
echo '<div class="lst">';
echo '<form method="post" action="?modules=perevod"><b>ID пользователя</b>:<br/><input type="text" name="us" value=""><br/>
<b>Сколько передать wmr</b>:<br/><input type="text" name="money" value=""><br/>';
echo '<input type="submit" name="send_money" value="Передать"></form>';
echo '</div>';
F ();
break;
}
?>