· 9 years ago · Dec 14, 2016, 12:50 AM
1<?php
2
3$cwd = getcwd();
4
5if (strpos($cwd, "bans/") !== FALSE or strpos($cwd, 'bans\\') !== FALSE) {
6 include('../config.php');
7} else {
8 include('config.php');
9}
10
11function getDatabase() {
12 // Values
13 global $hostname, $username, $password, $database, $port;
14 // Connection
15 $connection = new mysqli($hostname, $username, $password);
16
17 $database_sql = "CREATE DATABASE IF NOT EXISTS `" . $database . "`";
18 // Check
19 if ($connection -> connect_error) {
20 die("[Bans] Database connection has failed, " . mysqli_connect_error());
21 }
22 //Set to UTF8 to allow none english characters
23 if (!$connection->set_charset("utf8")) {
24 printf("Error loading character set utf8: %s\n", $connection->error);
25 exit();
26 }
27 // Create database
28 if ($connection -> query($database_sql) == TRUE) {
29
30 } else {
31 echo "[Bans] Database has not been created, error: " . $connection -> error;
32 }
33 // Set database
34 mysqli_select_db($connection, $database);
35 // Return connection object
36 return $connection;
37}
38
39function runQuery($query) {
40 // Get object
41 $database_object = getDatabase();
42 // Try the query
43 $callback = $database_object -> query($query);
44 // Check
45 if ($callback == FALSE) {
46 return NULL;
47 }
48 // Close connection
49 $database_object -> close();
50 // Return callback
51 return $callback;
52}
53
54function escapeS($string) {
55 // Object
56 $object = getDatabase();
57 $string_escaped = $object -> escape_string($string);
58 $object -> close();
59 return $string_escaped;
60}
61
62function createTables() {
63 $servers = "CREATE TABLE IF NOT EXISTS `gban_servers` (`id` varchar(50) NOT NULL,`type` varchar(20) NOT NULL,`host` varchar(50) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1";
64 $admins = "CREATE TABLE IF NOT EXISTS `gban_admins` (`community_id` varchar(20) NOT NULL,`email` varchar(50) DEFAULT NULL,`type` tinyint(1) NOT NULL, PRIMARY KEY (`community_id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1";
65 $appeals = "CREATE TABLE IF NOT EXISTS `gban_appeals` (`id` int(6) NOT NULL AUTO_INCREMENT, `status` varchar(10) NOT NULL DEFAULT 'Pending', `steamid` varchar(20) NOT NULL, `date` int(8) NOT NULL, `ip` varchar(20) NOT NULL, `unban_reason` text NOT NULL, `last_updated_by` varchar(255) NULL, `last_updated_date` int(8) NULL, `ban_id` INT(6) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;";
66 $settings = "CREATE TABLE IF NOT EXISTS `gban_settings` (`name` varchar(50) NOT NULL, `value` varchar(100)) ENGINE=InnoDB DEFAULT CHARSET=latin1";
67 $blocks = "CREATE TABLE IF NOT EXISTS `gban_block` (`steamid` varchar(50), PRIMARY KEY (`steamid`)) ENGINE=InnoDB DEFAULT CHARSET=latin1";
68
69 runQuery($servers);
70 runQuery($admins);
71 runQuery($appeals);
72 runQuery($settings);
73 runQuery($blocks);
74 insertBasicSettings();
75}
76
77function addAppeal($steamid, $ip, $reason, $banId) {
78 runQuery("INSERT INTO gban_appeals(steamid, date, ip, unban_reason, ban_id) VALUES('" . escapeS($steamid) . "', '" . time() . "', '" . escapeS($ip) . "', '" . escapeS($reason) . "', '" . escapeS($banId) . "')");
79}
80
81function getAppeals($banid) {
82 return runQuery("SELECT * FROM gban_appeals WHERE ban_id = '" . escapeS($banid) . "' ORDER BY date DESC");
83}
84
85function getLatestPermaBans() {
86 return runQuery("SELECT * FROM `gban_history` WHERE state = 2 OR state = 4 ORDER BY date_banned DESC LIMIT 10");
87}
88
89function getLatestTempBans() {
90 return runQuery("SELECT * FROM `gban_history` WHERE state = 1 OR state = 3 ORDER BY date_banned DESC LIMIT 10");
91}
92
93function getAllBans() {
94 return runQuery("SELECT * FROM `gban_history` ORDER BY date_banned DESC");
95}
96
97function getActiveBans() {
98 return runQuery("SELECT * FROM `gban_list` ORDER BY date DESC");
99}
100
101function getHistoryBans() {
102 return runQuery("SELECT * FROM `gban_history` WHERE state=3 OR state = 4 ORDER BY date_banned DESC");
103}
104
105function countPermaBans() {
106 return runQuery("SELECT COUNT('id') FROM `gban_history` WHERE state = 2 OR state = 4");
107}
108
109function countTempBans() {
110 return runQuery("SELECT COUNT('id') FROM `gban_history` WHERE state = 1 OR state = 3");
111}
112
113function getBanDetails($steamid, $time) {
114 return runQuery("SELECT * FROM `gban_history` WHERE target_id = '" . escapeS($steamid) . "' AND date_banned = '" . escapeS($time) . "'");
115}
116
117function getSearch($steamid) {
118 return runQuery("SELECT * FROM `gban_history` WHERE target_id = '" . escapeS($steamid) . "' ORDER BY date_banned DESC");
119}
120
121function addAdmin($id, $email, $type) {
122 if ($email == NULL) {
123 runQuery("INSERT INTO gban_admins(community_id, type) VALUES('" . escapeS($id) . "', '" . escapeS($type) . "')");
124 } else {
125 runQuery("INSERT INTO gban_admins(community_id, email, type) VALUES('" . escapeS($id) . "', '" . escapeS($email) . "', '" . escapeS($type) . "')");
126 }
127}
128
129function getAdmins() {
130 return runQuery("SELECT * FROM gban_admins");
131}
132
133function getSuperAdmins() {
134 return runQuery("SELECT * FROM gban_admins WHERE type='2'");
135}
136
137function addServer($id, $type, $host) {
138 runQuery("INSERT INTO gban_servers(id, type, host) VALUES('" . escapeS($id) . "', '" . escapeS($type) . "', '" . escapeS($host) . "')");
139}
140
141function getServers() {
142 return runQuery("SELECT * FROM gban_servers");
143}
144
145function checkIfPendingAppeal($steamid) {
146 $result = runQuery("SELECT id FROM gban_appeals WHERE steamid = '" . escapeS($steamid) . "' AND status = 'Pending'");
147 if ($result->num_rows == 0) {
148 return true;
149 } else {
150 return false;
151 }
152}
153
154function countAppeals() {
155 return runQuery("SELECT COUNT(*) FROM gban_appeals WHERE status = 'Pending'");
156}
157
158function countAcceptedAppeals() {
159 return runQuery("SELECT COUNT(*) FROM gban_appeals WHERE status = 'Accepted'");
160}
161
162function countDeclinedAppeals() {
163 return runQuery("SELECT COUNT(*) FROM gban_appeals WHERE status = 'Declined'");
164}
165
166function getAllOpenAppeals() {
167 return runQuery("SELECT * FROM gban_appeals WHERE status = 'Pending'");
168}
169
170function getHistoryAppeals() {
171 return runQuery("SELECT * FROM gban_appeals WHERE status = 'Accepted' OR status = 'Declined' ORDER BY last_updated_date DESC LIMIT 10");
172}
173
174function getAppeal($steamid) {
175 return runQuery("SELECT * FROM gban_appeals WHERE steamid = '" . escapeS($steamid) . "' AND status = 'Pending'");
176}
177
178function getBanDetailsById($id) {
179 return runQuery("SELECT * FROM gban_history WHERE id = '" . $id . "'");
180}
181
182function declineAppeal($id, $updatedBy, $time) {
183 runQuery("UPDATE gban_appeals SET status='Declined', last_updated_by='" . escapeS($updatedBy) . "', last_updated_date='" . escapeS($time) . "' WHERE ban_id = '" . escapeS($id) . "'");
184}
185
186function countBans($steamid) {
187 return runQuery("SELECT COUNT('id') FROM `gban_history` WHERE target_id = '" . escapeS($steamid) . "'");
188}
189
190//------------------------Settings---------------------------------------
191
192function insertBasicSettings() {
193 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('server_name', 'GBans')");
194 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('server_website', 'http://www.gbans.co.uk')");
195 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('setup', 'false')");
196 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('nav_background_colour', '292c2f')");
197 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('nav_text_colour', 'ffffff')");
198 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('appeals', 'true')");
199 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('email', 'false')");
200 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('type', 'smtp')");
201 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('hostname', NULL)");
202 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('port', NULL)");
203 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('username', NULL)");
204 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('password', NULL)");
205 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('smtp_type', 'ssl')");
206 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('email_address', NULL)");
207 runQuery("INSERT IGNORE INTO gban_settings(name, value) VALUES ('email_from', NULL)");
208}
209
210function updateSetup() {
211 runQuery("UPDATE gban_settings SET value='true' WHERE name='setup'");
212}
213
214function updateServerName($name) {
215 runQuery("UPDATE gban_settings SET value='" . escapeS($name). "' WHERE name='server_name'");
216}
217
218function updateServerWebsite($website) {
219 runQuery("UPDATE gban_settings SET value='" . escapeS($website) . "' WHERE name='server_website'");
220}
221
222function updateAppeals($value) {
223 runQuery("UPDATE gban_settings SET value='" . escapeS($value) . "' WHERE name='appeals'");
224}
225
226function updateEmail($value) {
227 runQuery("UPDATE gban_settings SET value='" . escapeS($value) . "' WHERE name='email'");
228}
229
230function updateType($value) {
231 runQuery("UPDATE gban_settings SET value='" . escapeS($value) . "' WHERE name='type'");
232}
233
234function updateEmailHostname($value) {
235 runQuery("UPDATE gban_settings SET value='" . escapeS($value) . "' WHERE name='hostname'");
236}
237
238function updatePort($value) {
239 runQuery("UPDATE gban_settings SET value='" . escapeS($value) . "' WHERE name='port'");
240}
241
242function updateUsername($value) {
243 runQuery("UPDATE gban_settings SET value='" . escapeS($value) . "' WHERE name='username'");
244}
245
246function updatePassword($value) {
247 runQuery("UPDATE gban_settings SET value='" . escapeS($value) . "' WHERE name='password'");
248}
249
250function updateSmtpType($value) {
251 runQuery("UPDATE gban_settings SET value='" . escapeS($value) . "' WHERE name='smtp_type'");
252}
253
254function updateEmailAddress($value) {
255 runQuery("UPDATE gban_settings SET value='" . escapeS($value) . "' WHERE name='email_address'");
256}
257
258function updateEmailFrom($value) {
259 runQuery("UPDATE gban_settings SET value='" . escapeS($value) . "' WHERE name='email_from'");
260}
261
262function updateNavBackgroundColour($value) {
263 runQuery("UPDATE gban_settings SET value='" . escapeS($value) . "' WHERE name='nav_background_colour'");
264}
265
266function updateNavTextColour($value) {
267 runQuery("UPDATE gban_settings SET value='" . escapeS($value) . "' WHERE name='nav_text_colour'");
268}
269
270function getWebsiteName() {
271 return runQuery("SELECT value FROM gban_settings WHERE name='server_name'");
272}
273
274function getWebsite() {
275 return runQuery("SELECT value FROM gban_settings WHERE name='server_website'");
276}
277
278function getSetup() {
279 return runQuery("SELECT value FROM gban_settings WHERE name='setup'");
280}
281
282function getAppealEnabled() {
283 return runQuery("SELECT value FROM gban_settings WHERE name='appeals'");
284}
285
286function getEmailEnabled() {
287 return runQuery("SELECT value FROM gban_settings WHERE name='email'");
288}
289
290function getEmailType() {
291 return runQuery("SELECT value FROM gban_settings WHERE name='type'");
292}
293
294function getEmailHostname() {
295 return runQuery("SELECT value FROM gban_settings WHERE name='hostname'");
296}
297
298function getPort() {
299 return runQuery("SELECT value FROM gban_settings WHERE name='port'");
300}
301
302function getUsername() {
303 return runQuery("SELECT value FROM gban_settings WHERE name='username'");
304}
305
306function getPassword() {
307 return runQuery("SELECT value FROM gban_settings WHERE name='password'");
308}
309
310function getSmtpType() {
311 return runQuery("SELECT value FROM gban_settings WHERE name='smtp_type'");
312}
313
314function getEmailAddress() {
315 return runQuery("SELECT value FROM gban_settings WHERE name='email_address'");
316}
317
318function getEmailFrom() {
319 return runQuery("SELECT value FROM gban_settings WHERE name='email_from'");
320}
321
322function getNavBackgroundColour() {
323 return runQuery("SELECT value FROM gban_settings WHERE name='nav_background_colour'");
324}
325
326function getNavTextColour() {
327 return runQuery("SELECT value FROM gban_settings WHERE name='nav_text_colour'");
328}
329
330function getAllSettings() {
331 return runQuery("SELECT * FROM gban_settings");
332}
333
334//-------------------Admins and Servers-----------------------------
335
336function deleteAdmin($id) {
337 runQuery("DELETE FROM gban_admins WHERE community_id='" . escapeS($id) . "'");
338}
339
340function deleteServer($id) {
341 runQuery("DELETE FROM gban_servers WHERE id='" . escapeS($id) . "'");
342}
343
344function acceptAppeal($admin, $time, $appealId, $steamid, $appealTime, $state) {
345 runQuery("UPDATE gban_appeals SET status='Accepted', last_updated_by='" . escapeS($admin) . "', last_updated_date='" . escapeS($time) . "' WHERE ban_id = '" . escapeS($appealId) . "' AND date='" . escapeS($appealTime) . "'");
346 runQuery("UPDATE gban_history SET unbanned_by='" . escapeS($admin) . "', unbanned_date='" . escapeS($time) . "', state='" . escapeS($state) . "' WHERE target_id='" . escapeS($steamid) . "'");
347 runQuery("DELETE FROM gban_list WHERE target_id='" .escapeS($steamid) . "'");
348}
349
350function getServer($id) {
351 return runQuery("SELECT name FROM gban_serverlist WHERE id='" . escapeS($id) . "'");
352}
353
354function getEmails() {
355 return runQuery("SELECT * FROM gban_admins WHERE email IS NOT NULL");
356}
357
358function addBan($player, $steamid, $time, $admin, $adminid, $reason, $date) {
359 if ($time == 0) {
360 $state = "2";
361 $time = 0;
362 } else {
363 $state = "1";
364 $time = $time * 60;
365 $time = $date + $time;
366 }
367 runQuery("INSERT IGNORE INTO gban_list(target, target_id, target_ip, admin, admin_id, reason, date, length, server_id) VALUES ('" . escapeS($player) . "', '" . escapeS($steamid) . "', '0.0.0.0', '" . escapeS($admin) . "', '". escapeS($adminid) . "', '" . escapeS($reason) . "', '" . escapeS($date) . "', '" . escapeS($time) . "', '-1')");
368
369 runQuery("INSERT INTO gban_history(target, target_id, target_ip, admin, admin_id, reason, date_banned, state, unbanned_by, unbanned_date, server_id) VALUES ('" . escapeS($player) . "', '" . escapeS($steamid) . "', '0.0.0.0', '" . escapeS($admin) . "', '". escapeS($adminid) . "', '" . escapeS($reason) . "', '" . escapeS($date) . "', '" . escapeS($state) . "', '', '". escapeS($time) . "', '-1')");
370}
371
372function addBlock($steamid) {
373 runQuery("INSERT IGNORE INTO gban_block(steamid) VALUES ('" . escapeS($steamid) . "')");
374}
375
376function getBlockedUsers() {
377 return runQuery("SELECT * FROM gban_block");
378}
379
380function deleteBlock($steamid) {
381 runQuery("DELETE FROM gban_block WHERE steamid = '" . escapeS($steamid) . "'");
382}
383
384function checkBlock($steamid) {
385 return runQuery("SELECT * FROM gban_block WHERE steamid = '" . escapeS($steamid) . "'");
386}
387
388?>