-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathcommon.php
More file actions
executable file
·177 lines (141 loc) · 5.29 KB
/
common.php
File metadata and controls
executable file
·177 lines (141 loc) · 5.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<?php
/**
* Main file which do includes et set up all data for the application
* @package OGSpy
* @subpackage main
* @author Kyser
* @copyright Copyright © 2007, https://ogsteam.eu/
* @license https:///opensource.org/licenses/gpl-license.php GNU Public License
* @version 3.3.8 */
use Whoops\Run;
use Whoops\Handler\PrettyPageHandler;
use Whoops\Handler\CallbackHandler;
use Monolog\Logger;
use Monolog\Handler\RotatingFileHandler;
use Monolog\Level;
if (!defined('IN_SPYOGAME')) {
die("Hacking attempt");
}
//Appel de l'autoloader
require_once __DIR__ . '/vendor/autoload.php';
// Loggers
$log = new Logger('OGSpy');
$log->pushHandler(new RotatingFileHandler(__DIR__ . '/logs/OGSpy.log', 365, Level::Debug));
$logSQL = new Logger('OGSpySQL');
$logSQL->pushHandler(new RotatingFileHandler(__DIR__ . '/logs/OGSpy-sql.log', 365, Level::Debug));
$logSlowSQL = new Logger('OGSpySlowSQL');
$logSlowSQL->pushHandler(new RotatingFileHandler(__DIR__ . '/logs/OGSpy-sql-slow.log', 365, Level::Debug));
$log->info("OGSpy started");
//Récupération des paramètres de connexion à la base de données
if (file_exists("config/id.php")) {
require_once "config/id.php";
} else {
if (!defined("OGSPY_INSTALLED") && !defined("INSTALL_IN_PROGRESS") && !defined("UPGRADE_IN_PROGRESS")) {
header("Location: install/index.php?lang=fr");
exit();
} elseif (file_exists('../config/id.php')) {
require_once '../config/id.php';
}
}
//Appel des fonctions
require_once "includes/functions.php";
require_once "includes/config.php";
require_once "includes/mysql.php";
require_once "includes/log.php";
require_once "includes/galaxy.php";
require_once "includes/user.php";
require_once "includes/usergroups.php";
require_once "includes/player.php";
require_once "includes/sessions.php";
require_once "includes/help.php";
require_once "includes/mod.php";
// OGame formula includes: keep all formula-related requires centralized here so
// domain include files do not pull in helpers on their own. Order matters.
require_once "includes/ogame_structs.php";
require_once "includes/ogame_elements.php";
require_once "includes/ogame_requirements.php";
require_once "includes/ogame_costs.php";
require_once "includes/ogame.php";
require_once "includes/ogame_planet.php";
require_once "includes/ogame_production.php";
require_once "includes/chart_js.php";
require_once "includes/cache.php"; // Toujours inclure cache.php car nécessaire pour init_serverconfig()
if (defined("OGSPY_INSTALLED")) {
require_once "includes/mail.php";
require_once "includes/token.php";
}
$log->info("OGSpy Configured");
//Récupération des valeur GET, POST, COOKIE
extract($_GET, EXTR_PREFIX_ALL, "pub");
extract($_POST, EXTR_PREFIX_ALL, "pub");
extract($_COOKIE, EXTR_PREFIX_ALL, "pub");
foreach ($_GET as $secvalue) {
if (!check_getvalue($secvalue)) {
die("I don't like you...");
}
}
foreach ($_POST as $secvalue) {
if (!check_postvalue($secvalue)) {
header("Location: index.php");
die();
}
}
$log->info("OGSpy Parameters loaded");
//Language File
if (!isset($ui_lang)) { // Checks the ui_lang value from config file
$ui_lang = $pub_lang ?? "fr";
//If no language is available in id.php file we take fr by default
}
require_once "lang/lang_main.php";
// ajout fichier clef unique
if (!defined("INSTALL_IN_PROGRESS") && !defined("UPGRADE_IN_PROGRESS")) {
if (file_exists('config/key.php')) {
require_once 'config/key.php';
} else {
generate_key();
}
}
$log->info("OGSpy Language loaded - " . $ui_lang);
//Connexion à la base de donnnées
if (!defined("INSTALL_IN_PROGRESS")) {
// appel de l instance en cours
$db = sql_db::getInstance($db_host, $db_user, $db_password, $db_database);
if (!$db->db_connect_id) {
die("Impossible de se connecter à la base de données");
}
//Récupération et encodage de l'adresse ip
// When running from CLI (for tests), REMOTE_ADDR may be undefined.
$remote_addr = $_SERVER['REMOTE_ADDR'] ?? '127.0.0.1';
$user_ip = encode_ip($remote_addr);
$log->info("OGSpy Database connected - " . $db_host);
// initialisation des variables en cache
init_serverconfig();
init_mod_cache();
$log->info("OGSpy Cache loaded");
if (!defined("UPGRADE_IN_PROGRESS") && PHP_SAPI !== 'cli') {
// Skip session initialization during CLI (phpunit) runs to avoid
// constructing session models that depend on full runtime state.
session();
maintenance_action();
}
$log->info("OGSpy Session started");
/* Exception Handler */
$whoops = new Run;
$whoops->allowQuit(true);
$whoops->writeToOutput(true);
if (isset($server_config['log_phperror']) && !$server_config['log_phperror']) {
$whoops->silenceErrorsInPaths('mod/*', E_ALL);
}
$whoops->pushHandler(new PrettyPageHandler());
// Ajout du handler pour logger les erreurs avec Monolog
$whoops->pushHandler(new CallbackHandler(
function ($exception, $inspector, $run) use ($log) {
$log->error("Whoops! Une erreur est survenue : " . $exception->getMessage(), [
'file' => $exception->getFile(),
'line' => $exception->getLine(),
'trace' => $exception->getTraceAsString(),
]);
}
));
$whoops->register();
}