Передача СидБонусов

WinsOk

Пользователь
#1
#############################################################
## Автор мода: WinsOk
## Название мода: Передача СидБонусов
## Описание: Мод позволяет передавать сидбонусы между пользователями
## Сложность: легко
## Время установки: 2 мин
#############################################################
usercp_send.php
PHP:
<?php
$to = isset($_GET['to']) ? $_GET['to'] : 0;
$from = isset($_GET['from']) ? $_GET['from'] : 0;
$user_points = isset($_POST['bonus']) ? $_POST['bonus'] : 0;
 
if ($user_points > 0) { $check = true; } else { $check = false; }
 
if ($to AND $from AND $check) {
    $nick = get_userdata($to);
 
    DB()->query("UPDATE bb_users SET user_points = user_points + $user_points WHERE user_id = $to");
    DB()->query("UPDATE bb_users SET user_points = user_points - $user_points WHERE user_id = $from");
 
    bb_die('Вы отдали '.$user_points.' бонусов пользователю '.$nick['username'].'<br><br><a href="profile.php?mode=viewprofile&u='.$to.'">Вернуться в профиль</a>');
}
bb_die('Отсутствуют данные для отправки<br><hr>Используйте кнопку в профиле пользователя<br><br><a href="profile.php?mode=viewprofile&u='.$to.'">Вернуться в профиль</a>');
?>
Сохранить файл в includes/ucp/
Открыть profile.php
Найти
PHP:
default:
    bb_die('Invalid mode');
Вставить до
PHP:
    case 'send':
        require(INC_DIR .'ucp/usercp_send.php');
        break;
Открыть usercp_viewprofile.tpl
Найти
HTML:
<!-- IF $bb_cfg['seed_bonus_enabled'] --><td colspan="1"><!-- IF EDIT_PROF --><a href="profile.php?mode=bonus">{L_EXCHANGE}</a><!-- ENDIF --></td><!-- ENDIF -->
</tr>
Вставить после
HTML:
<!-- IF $bb_cfg['seed_bonus_enabled'] --><tr class="row5 tCenter"><td colspan="6"><form method="post" action="profile.php?mode=send&to={PROFILE_USER_ID}&from={PROFILE_USER}"><b>Передача СидБонусов</b>: <input type="text" name="bonus" size="20" maxlength="10" value="" /><input type="submit" name="submit" value="Перевести" class="reset" /></form></td></tr><!-- ENDIF -->
 

drew

Пользователь
#6
WinsOk, Я вот не понимаю зачем для одного действия делать отдельный файл. Если можно было вывести в бонусы, сделать строчку ника и кол. бонуса переводимого.
Так будет лучше.
PHP:
<?php
$to = isset($_GET['to']) ? $_GET['to'] : 0;;
$user_points = isset($_POST['bonus']) ? $_POST['bonus'] : 0;
 
if ($user_points > 0) { $check = true; } else { $check = false; }
 
if ($to AND $check)
{
    $nick = get_userdata($to);
 
    DB()->query("UPDATE bb_users SET user_points = user_points - $user_points WHERE user_id = ".$userdata['user_id']."");
    DB()->query("UPDATE bb_users SET user_points = user_points + $user_points WHERE user_id = $to");
 
    bb_die('Вы отдали '.$user_points.' бонусов пользователю '.$nick['username'].'<br><br><a href="profile.php?mode=viewprofile&u='.$to.'">Вернуться в профиль</a>');
}
bb_die('Отсутствуют данные для отправки<br><hr>Используйте кнопку в профиле пользователя<br><br><a href="profile.php?mode=viewprofile&u='.$to.'">Вернуться в профиль</a>');
?>
 

FineRider

Пользователь
#7
Все таки кажется "мод от порутчика" куда лучше!
Но спасибо за старание)))
 
L

lEx0

Гость
#8
потенциальный мод с SQL inject, вы данные то проверяйте...
 

Бандерас

Пользователь
#9
передача Сидбонусов не ограничено между пользователями, один может отдать миллионы, а сам при этом остаться минусе и дальше продолжать раздачу сидбонусов... Можно как то это ограничить в пределах имеемого у пользователя сидбонусов (и больше не мог отправлять)?
 
Сверху