muhago97, свой код, начисляющий подарки, уже сам добавишь в нужное место. Я написал на файлах, но специально вынес код работы с файлами в отдельные функции, чтобы можно было переписать эти функции под работу с базой, не залезая в остальной код. В строке № 46
setFile($FILE, setTime());
можно устанавливать интервал между подарками: setTime(1) будет равно одному часу. По умолчанию setTime() равна 5 часам.
* (+/-)
/**
* Получаем данные из текст.файла
* @param str $file Путь к файлу
* @return str Метка времени с установленным смещением
*/
function getFile($file) {
if (file_exists($file)) {
return file_get_contents($file);
} else {
return false;
}
}
/**
* Записываем данные в текст.файл
* @param str $file Путь к файлу
* @param str $str Строка для записи
* @return int Число записанных байт или false
*/
function setFile($file, $str) {
$size = false;
$size = file_put_contents($file, $str);
return $size;
}
/**
* Установка времени
* @param int $hours Время (5 часов по умолчанию)
* @return int Временная метка окончания заданного периода
*/
function setTime($hours = 5) {
$time = time();
return $time + (3600 * $hours);
}
/**
* Использование
*/
if ($user_id) {
// Название файла с данными
$FILE = $user_id .'present.dat';
$time = getFile($FILE);
if (isset($_GET['dat'])) {
if (!$time || $time < time()) {
setFile($FILE, setTime());
header('Location: '. basename(__FILE__));
exit;
}
}
if ($time > time()) {
$view = '<div class="rmenu"><b>Вы получили подарок!</b></div>'.
'<div class="menu">Следующий подарок можно получить через: <b>'.
date('G:i:s', $time - time()) .'</b></div>';
} else {
$view = '<div class="gmenu"><a href="?dat">Получить подарок</a></div>';
}
echo $view;
}