Проверки с перенаправлениями переехали в functions.php. Глобальный выход если нет сессии в config.php.
This commit is contained in:
+54
-4
@@ -1,19 +1,69 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) 2018.
|
||||
* Author: Igor Barkov <lopar.4ever@gmail.com>
|
||||
* Project name: Battles-Game
|
||||
*/
|
||||
require_once 'config.php';
|
||||
if (empty($_SESSION['uid'])) {
|
||||
throw new \Exceptions\GameException('Не могу проинициализировать игрока!');
|
||||
}
|
||||
|
||||
$user = new \Battles\User($_SESSION['uid']);
|
||||
if ($user->id && $user->block) {
|
||||
exit('user blocked!');
|
||||
}
|
||||
|
||||
/*
|
||||
* Проверки на соответствие скрипта и комнаты, которые были натыканы по всем файлам.
|
||||
*/
|
||||
$fbattleCheckFiles = [
|
||||
'c_haos_in.php',
|
||||
'c_haos.php',
|
||||
'c_park.php',
|
||||
'city.php',
|
||||
'clan_castle.php',
|
||||
'comission.php',
|
||||
'enter_cave.php',
|
||||
'library.php',
|
||||
'atk.php',
|
||||
'podzem_dialog.php',
|
||||
'post.php',
|
||||
'shop.php',
|
||||
'tournament.php',
|
||||
'vxod.php',
|
||||
'bank.php',
|
||||
'canalizaciya,php',
|
||||
'forest.php',
|
||||
'main.php',
|
||||
'repair.php',
|
||||
'towerstamp.php',
|
||||
'hell.php',
|
||||
'ul_clans.php',
|
||||
'labirint.php',
|
||||
'akadem.php',
|
||||
'towerin.php',
|
||||
'user_anketa.php',
|
||||
'zayavka.php',
|
||||
];
|
||||
//Может просто отовсюду? О_о
|
||||
if ($user->battle && in_array(pathinfo(debug_backtrace()[0]['file'])['basename'], $fbattleCheckFiles)) {
|
||||
header('location: fbattle.php');
|
||||
exit;
|
||||
}
|
||||
$towerinCheckFiles = ['main.php', 'city.php', 'tower.php'];
|
||||
if ($user->in_tower && in_array(pathinfo(debug_backtrace()[0]['file'])['basename'], $towerinCheckFiles)) {
|
||||
header('location: towerin.php');
|
||||
exit;
|
||||
}
|
||||
$roomsCheck = [22, 23, 25, 27, 29, 30, 31, 37, 38, 39, 40, 41, 45, 53, 61, 401, 402, 600, 601, 602, 621, 650, 1051, 1052];
|
||||
// Если я в одной из этих комнат,
|
||||
// [И] Имя файла который инклюдит файл с проверкой не совпадает с именем файла локации в которой я нахожусь
|
||||
// [И] Номер комнаты который я пытаюсь открыть есть в списке проверяемых
|
||||
if (in_array($user->room, $roomsCheck)
|
||||
&& pathinfo(debug_backtrace()[0]['file'])['basename'] != \Battles\Travel::$roomFileName[$user->room]
|
||||
&& in_array(array_search(pathinfo(debug_backtrace()[0]['file'])['basename'], \Battles\Travel::$roomFileName), $roomsCheck)) {
|
||||
header('location: main.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
$ip = filter_input(INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP);
|
||||
if (isset($_GET['goto']) && isset($_GET['tStamp']) && isset($_GET['vcode']) && $_GET['vcode'] == md5(sha1($_GET['goto'] . $_GET['tStamp']))) {
|
||||
db::c()->query('UPDATE `users`,`online` SET `users`.`room` = ?i, `online`.`room` = ?i WHERE `online`.`id` = `users`.`id` AND `online`.`id` = ?i', $_GET['goto'], $_GET['goto'], $_SESSION['uid']);
|
||||
|
||||
Reference in New Issue
Block a user