function Login($login, $pass, $passmd = "", $from_validate = 0) { global $db_prefix, $db_secret; $unitab = LoadUniverse(); $uni = $unitab['num']; if ($player_id = CheckPassword($login, $pass, $passmd)) { // Пользователь заблокирован? $user = LoadUser($player_id); if ($user['banned']) { UpdateLastClick($player_id); // Обновить активность пользователя, чтобы можно было продлять удаление. echo "<html><head><meta http-equiv='refresh' content='0;url=" . hostname() . "game/reg/errorpage.php?errorcode=3&arg1={$uni}&arg2={$login}&arg3=" . $user['banned_until'] . "' /></head><body></body>"; ob_end_flush(); exit; } $lastlogin = time(); // Создать приватную сессию. $prsess = md5($login . $lastlogin . $db_secret); // Создать публичную сессию $sess = substr(md5($prsess . sha1($pass) . $db_secret . $lastlogin), 0, 12); // Записать приватную сессию в кукисы и обновить БД. setcookie("prsess_" . $player_id . "_" . $uni, $prsess, time() + 24 * 60 * 60, "/"); $query = "UPDATE " . $db_prefix . "users SET lastlogin = {$lastlogin}, session = '" . $sess . "', private_session = '" . $prsess . "' WHERE player_id = {$player_id}"; dbquery($query); // Записать IP-адрес. $ip = $_SERVER['REMOTE_ADDR']; $query = "UPDATE " . $db_prefix . "users SET ip_addr = '" . $ip . "' WHERE player_id = {$player_id}"; dbquery($query); //echo "ID пользователя: $player_id<br>Приватная сессия: $prsess<br>Публичная сессия: $sess<br>IP-адрес: $ip"; // Выбрать Главную планету текущей. $query = "SELECT * FROM " . $db_prefix . "users WHERE session = '" . $sess . "'"; $result = dbquery($query); $user = dbarray($result); SelectPlanet($player_id, $user['hplanetid']); // Задание глобальной отгрузки игроков, чистки виртуальных ПО, чистки уничтоженных планет, пересчёт статистики альянсов и прочие глобальные события AddReloginEvent(); AddCleanDebrisEvent(); AddCleanPlanetsEvent(); AddCleanPlayersEvent(); AddRecalcAllyPointsEvent(); // Задание пересчёта очков игрока. AddUpdateStatsEvent(); AddRecalcPointsEvent($player_id); setcookie('ogamelang', $user['lang'], time() + 60 * 60 * 24 * 9999, "/"); // Редирект на Обзор Главной планеты. header("Location: " . hostname() . "game/index.php?page=overview&session=" . $sess . "&lgn=1"); echo "<html><head><meta http-equiv='refresh' content='0;url=" . hostname() . "game/index.php?page=overview&session=" . $sess . "&lgn=1' /></head><body></body>"; LogIPAddress($ip, $player_id); } else { header("Location: " . hostname() . "game/reg/errorpage.php?errorcode=2&arg1={$uni}&arg2={$login}"); echo "<html><head><meta http-equiv='refresh' content='0;url=" . hostname() . "game/reg/errorpage.php?errorcode=2&arg1={$uni}&arg2={$login}' /></head><body></body>"; } ob_end_flush(); exit; }
function Queue_UpdateStats_End($queue) { global $db_prefix; $when = $queue['end']; $query = "UPDATE " . $db_prefix . "users SET oldscore1 = score1, oldscore2 = score2, oldscore3 = score3, oldplace1 = place1, oldplace2 = place2, oldplace3 = place3, scoredate = {$when};"; dbquery($query); $query = "UPDATE " . $db_prefix . "ally SET oldscore1 = score1, oldscore2 = score2, oldscore3 = score3, oldplace1 = place1, oldplace2 = place2, oldplace3 = place3, scoredate = {$when};"; dbquery($query); RemoveQueue($queue['task_id']); AddUpdateStatsEvent($when); Debug(date("H:i", $when) . " - Old scores saved"); }