Файл: pages/economy/day.php
Строк: 63
<?php
// Physical module map v50.6: public URL stays clean while code lives in /pages.
if (!defined('GAME_ROOT')) define('GAME_ROOT', dirname(__DIR__, 2));
chdir(GAME_ROOT);
if (PHP_SAPI !== 'cli') { $_SERVER['PHP_SELF']='/day.php'; $_SERVER['SCRIPT_NAME']='/day.php'; }
/* Ежедневная награда v36: by Метриум (Стэлп) */
include './system/common.php';
include './system/functions.php';
include './system/user.php';
if(!$user){ header('Location:/'); exit; }
$title='Ежедневная награда';
$uid=(int)$user['id'];
$gift=db_fetch_one('SELECT * FROM `user_podarok` WHERE `user_id`=:u ORDER BY `last_auth` DESC LIMIT 1',['u'=>$uid]);
$last=(int)($gift['last_auth']??0);
$next=$last+86400;
$available=$last===0 || $next<=time();
$day=((int)($user['day']??0)%7)+1;
$rewards=[1=>2,2=>3,3=>5,4=>7,5=>10,6=>15,7=>25];
if(($_SERVER['REQUEST_METHOD']??'GET')==='POST' && isset($_POST['claim'])){
security_require_csrf();
$gift=db_fetch_one('SELECT * FROM `user_podarok` WHERE `user_id`=:u ORDER BY `last_auth` DESC LIMIT 1',['u'=>$uid]);
$last=(int)($gift['last_auth']??0); $available=$last===0 || $last+86400<=time();
if(!$available){ $_SESSION['err']='Ежедневная награда уже получена. Следующая будет доступна позже.'; }
else{
$fresh=db_fetch_one('SELECT `day` FROM `users` WHERE `id`=:u LIMIT 1',['u'=>$uid]) ?: ['day'=>0];
$day=((int)$fresh['day']%7)+1; $gold=$rewards[$day];
db_pdo()->beginTransaction();
try{
db_execute('UPDATE `users` SET `day`=:d WHERE `id`=:u',['d'=>$day,'u'=>$uid]);
$granted=game_economy_award_gold($uid,$gold,'daily_reward',150);
db_execute('INSERT INTO `user_podarok` (`user_id`,`last_auth`,`stage`) VALUES (:u,:t,1) ON DUPLICATE KEY UPDATE `last_auth`=VALUES(`last_auth`),`stage`=`stage`+1',['u'=>$uid,'t'=>time()]);
db_pdo()->commit(); $_SESSION['ok']='Ежедневная награда получена: '.$granted.' золота.';
}catch(Throwable $e){ if(db_pdo()->inTransaction())db_pdo()->rollBack(); error_log('[DAILY] '.$e->getMessage()); $_SESSION['err']='Не удалось получить ежедневную награду.'; }
}
header('Location:/day/'); exit;
}
include './system/h.php';
?>
<div class="daily-v36">
<div class="title">Ежедневная награда</div>
<div class="daily-v36__intro">Заходи каждый день и забирай награду. Цикл состоит из 7 дней.</div>
<div class="daily-v36__grid">
<?php foreach($rewards as $n=>$gold): $done=(int)($user['day']??0)>=$n && (int)($user['day']??0)<=7; $active=$n===$day; ?>
<div class="daily-v36__day <?=$done?'done':''?> <?=$active?'active':''?>"><b>День <?=$n?></b><br><img src="/images/icon/gold.png" alt=""> <?=n_f($gold)?> золота<?= $done?'<span class="daily-check">✓</span>':'' ?></div>
<?php endforeach; ?>
</div>
<?php if($available): ?><form method="post" class="center"><?=security_csrf_field()?><button class="old-btn daily-v36__claim" type="submit" name="claim" value="1">Забрать награду</button></form>
<?php else: ?><div class="center blue">Следующая награда через <span data-live-until="<?=$next?>"></span></div><?php endif; ?>
</div>
<?php include './system/f.php'; ?>