-
Notifications
You must be signed in to change notification settings - Fork 1
/
core.php
178 lines (136 loc) · 6.05 KB
/
core.php
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
178
<?php
/*---- inicializace jadra ----*/
//kontrola definovani cesty
if(!defined('_indexroot')){exit;}
//casove pasmo
if(function_exists('putenv')){@putenv("TZ=Europe/Prague");}
@setlocale(LC_TIME, 'czech', 'utf8', 'cz_CZ');
//hlaseni chyb
error_reporting(E_ERROR | E_WARNING | E_PARSE);
//kontrola existence mbstring
if(!function_exists("mb_substr")){
_systemFailure("Na serveru není nainstalováno nebo aktivováno rozšíření PHP o <em>mbstring</em> (Multibyte String Functions), které je potřebné pro práci s řetězci v kódování UTF-8.");
}
//header a kodovani
@mb_internal_encoding("UTF-8");
if(!defined('_tmp_customheader')){$header="Content-Type: text/html; charset=utf-8";}
else{$header=_tmp_customheader;}
if($header!=""){header($header);}
//pristupove udaje
require(_indexroot."access.php");
define('_mysql_prefix', $prefix);
define('_mysql_db', $database);
//konstanty
define('_core', '1');
define('_nl', "\n");
define('_systemversion', 'XXL 1.0.1');
define('_sessionprefix', md5($server.$database.$user.$prefix)."-");
define('_rewrite_ext', '.html');
define('_userip', $_SERVER['REMOTE_ADDR']);
if(!defined('_administration')){define('_administration', 0);}
//promenne
$__image_ext=array("png", "jpeg", "jpg", "gif");
$__shid_total=0;
$__hcm_uid=0;
$__captcha_counter=0;
/*---- vlozeni funkci ----*/
require(_indexroot."require/functions.php");
if(isset($_GET['___identify'])){echo "SunLight CMS "._systemversion; exit;}
/*---- pripojeni k mysql ----*/
$con=@mysql_connect($server, $user, $password);
if($con){$db=@mysql_select_db($database);}
if(!$con or !$db){_systemFailure("Připojení k databázi se nezdařilo. Důvodem je pravděpodobně výpadek serveru nebo chybné přístupové údaje.</p><hr />\n<pre>"._htmlStr(mysql_error())."</pre><hr /><p>Zkontrolujte přístupové údaje v souboru <em>access.php</em>.");}
mysql_query("SET NAMES `utf8`");
/*---- konstanty, jazykovy soubor, motiv, sessions, blokovani IP, ... ----*/
if(!defined('_tmp_litemode')){
/*---- kontrola existence adresare install ----*/
if(@file_exists(_indexroot."install") and @is_dir(_indexroot."install")){
_systemFailure("Na serveru se stále nachází adresář <em>install</em>, který obsahuje skripty pro instalaci databáze. Smažte jej, pokud je databáze již nainstalovaná.");
}
/*---- definovani konstant nastaveni ----*/
$query=mysql_query("SELECT * FROM `"._mysql_prefix."-settings`");
if(mysql_error()!=false){_systemFailure("Připojení k databázi proběhlo úspěšně, ale dotaz na databázi selhal. Zkontrolujte, zda je databáze správně nainstalovaná.");}
while($item=mysql_fetch_array($query)){
switch($item['var']){
case "template": if(!@file_exists(_indexroot."templates/".$item['val']."/template.php") or !@file_exists(_indexroot."templates/".$item['val']."/config.php")){$item['val']="default";} break;
case "modrewrite": if(!@file_exists(_indexroot.".htaccess")){$item['val']=0;} break;
case "wysiwyg": if(!@file_exists(_indexroot."admin/modules/tinymce.slam")){$item['val']=0;} break;
}
define('_'.$item['var'], $item['val']);
}
//kontrola verze databaze
if(!defined("_dbversion") or !_checkVersion("database", _dbversion)){
_systemFailure("Verze nainstalované databáze není kompatibilní s verzí systému. Pokud byl právě aplikován patch pro přechod na novější verzi, pravděpodobně jste zapoměl(a) spustit skript pro aktualizaci databáze.");
}
//inicializace sessions
require(_indexroot."require/session.php");
//jazyk
//vychozi jazyk nebo individualni
if(_loginindicator and _language_allowcustom and _loginlanguage!=""){$language=_loginlanguage;}
else{$language=_language;}
$_lang=array();
$langfile=_indexroot."languages/".$language.".php";
$langfile_default=_indexroot."languages/default.php";
if(@file_exists($langfile)){
require($langfile);
}
else{
if(@file_exists($langfile_default)){require($langfile_default);}
else{_systemFailure("Zvolený ani přednastavený jazykový soubor nebyl nalezen.");}
}
//kontrola verze jazykoveho souboru
if(!_checkVersion("language_file", $_lang['main.version'])){
@mysql_query("UPDATE `"._mysql_prefix."-settings` SET val='default' WHERE var='language'");
_systemFailure("Zvolený jazykový soubor není kompatibilní s verzí systému.");
}
//motiv
$template=_indexroot."templates/"._template."/template.php";
$template_config=_indexroot."templates/default/config.php";
if(!@file_exists($template) or !@file_exists($template_config)){
_systemFailure("Nastavený ani přednastavený motiv <em>default</em> nebyl nalezen.");
}
require(_indexroot."templates/"._template."/config.php");
//kontrola verze motivu
if(!_checkVersion("template", _template_version) and !_administration){
_systemFailure("Zvolený motiv není kompatibilní s verzí systému.");
}
/*---- kontrola existence souboru patch.php ----*/
if(@file_exists(_indexroot."patch.php")){
_systemFailure("Na serveru se stále nachází soubor <em>patch.php</em>. Smažte jej, pokud je databáze již aktualizovaná.");
}
/*---- kontrola blokace IP ----*/
if(!_administration){
if(_banned!=""){
$banned=explode("\n", _banned);
foreach($banned as $item){
if(mb_substr(_userip, 0, mb_strlen($item))==$item){exit;}
}
}
}
/*---- vycisteni iplogu ----*/
mysql_query("DELETE FROM `"._mysql_prefix."-iplog` WHERE (type=1 AND ".time()."-time>"._maxloginexpire.") OR (type=2 AND ".time()."-time>"._artreadexpire.") OR (type=3 AND ".time()."-time>"._artrateexpire.") OR (type=4 AND ".time()."-time>"._pollvoteexpire.") OR (type=5 AND ".time()."-time>"._postsendexpire.")");
}
/*---- smazani nepotrebnych promennych z pameti ----*/
unset(
$server,
$user,
$password,
$database,
$prefix,
$time_zone,
$time_format,
$header,
$con,
$db,
$item,
$query,
$uquery,
$gquery,
$language,
$langfile,
$langfile_default,
$template,
$template_config,
$banned
);
?>