uid;
$plusTime = 604800; // 7 zile
echo '
Get Plus
';
echo 'Exchange gold for Plus features. All actions are logged.
';
if(empty($_POST['plus'])) {
?>
['field'=>'plus','cost'=>10],
'b1' => ['field'=>'b1','cost'=>5],
'b2' => ['field'=>'b2','cost'=>5],
'b3' => ['field'=>'b3','cost'=>5],
'b4' => ['field'=>'b4','cost'=>5],
];
if(!isset($map[$reward])) {
die('ERROR: Invalid reward. ');
}
$field = $map[$reward]['field'];
$cost = $map[$reward]['cost'];
$now = time();
// 1. scade gold ATOMIC – doar dacă ai suficient
$goldUpd = mysqli_query($database->dblink,
"UPDATE ".TB_PREFIX."users SET gold = gold - $cost
WHERE id = $uid AND gold >= $cost"
);
if(mysqli_affected_rows($database->dblink) != 1) {
die('Not enough gold!
');
}
// 2. adaugă timpul la feature
// dacă a expirat, setează de acum, altfel adaugă
mysqli_query($database->dblink,
"UPDATE ".TB_PREFIX."users
SET `$field` = IF(`$field` < $now, $now + $plusTime, `$field` + $plusTime)
WHERE id = $uid"
);
// 3. update sesiune
$session->gold -= $cost;
$_SESSION['gold'] = $session->gold;
$session->$field = max($session->$field, $now) + $plusTime;
// 4. log
mysqli_query($database->dblink,
"INSERT INTO ".TB_PREFIX."gold_fin_log (wid, action, time)
VALUES (0, 'Bought $field for $cost gold', $now)"
);
echo '';
echo '
Your status has been updated!
';
}
?>