Файл: 3020.ru/file_3020/_system/core.php
Строк: 100
<?
/**
* принудительно вырубаем глобальные переменные
*/
//die('Осуществляется перенос сайта');
if (ini_get('register_globals')) {
$allowed = array('_ENV' => 1, '_GET' => 1, '_POST' => 1, '_COOKIE' => 1, '_FILES' => 1, '_SERVER' => 1, '_REQUEST' => 1, 'GLOBALS' => 1);
foreach ($GLOBALS as $key => $value) {
if (!isset($allowed[$key])) {
unset($GLOBALS[$key]);
}
}
}
/*
* Корневой каталог
*/
define("ROOT", $_SERVER['DOCUMENT_ROOT'] . '/');
/**
* Cистемные файлы
*/
define("SYS", $_SERVER['DOCUMENT_ROOT'] . '/_system/');
/**
* Путь классов
*/
define("CLASSES", $_SERVER['DOCUMENT_ROOT'] . '/_system/_classes/');
/**
* Путь к функциям
*/
define("FUNC", $_SERVER['DOCUMENT_ROOT'] . '/_system/_function/');
/**
* Папка с временными файлами
*/
define("TMP", $_SERVER['DOCUMENT_ROOT'] . '/_system/tmp/');
/**
* Папка с файлами
*/
define("FILES", $_SERVER['DOCUMENT_ROOT'] . '/_system/files/');
/**
* Путь к ini Файлам
*/
define("INI", $_SERVER['DOCUMENT_ROOT'] . '/_system/_inifiles/');
/**
* Путь к темам
*/
define("DIRTHEME", $_SERVER['DOCUMENT_ROOT'] . '/themes/');
/**
* Путь к инструментам
*/
define("TOOLS", $_SERVER['DOCUMENT_ROOT'] . '/_system/_tools/');
/**
* Путь к картинкам
*/
define("SRC", $_SERVER['DOCUMENT_ROOT'] . '/_images/');
/**
*Временная Зона
*/
date_default_timezone_set('Europe/Moscow');
# Включаем ошибки
//error_reporting(E_ALL);
//ini_set('display_errors', true);
# Шлем На хуй ошибки заебали они уже если кому нужно выше код расскоментить
//error_reporting(0);
//ini_set('display_errors', false);
# Старт сессий
session_name('SESS');
session_start();
/*
* Настройки по умолчанию
*/
// Время запуска скрипта
list($msec, $sec) = explode(chr(32), microtime());
$conf['headtime'] = $sec + $msec;
$time = time();
$num = 0;
$insert = null;
/**
*
* @var Настройки системы
*
*/
$default = @parse_ini_file(INI.'settings.default.ini', true);
if (is_file(INI.'settings.system.dat')) {
if ($fset = @file_get_contents(INI.'settings.system.dat'))
{
$set_dinamic = unserialize($fset);
}
} else {
header('Location: /install.php');
exit;
}
$system = @array_merge($default, $set_dinamic);
/**
* Переменные GET по умочанию
*/
if (isset($_GET['id'])) {
$ID = abs((int) $_GET['id']);
}
/**
* @var Запрос раздела
*/
if (isset($_GET['func'])) {
$func = stripcslashes(htmlspecialchars($_GET['func']));
} else {
$func = 'home';
}
/*
* Классы MySQLi
*/
require '_classes/class.MyPDO.php';
//$system['dbpass'] = '9Z2k7M7p';
# Массив с параметрами
$dbset = array(
'server' => $system['dbhost'],
'username' => $system['dbuser'],
'password' => $system['dbpass'],
'db' => $system['dbname'],
'port' => 3306,
'charset' => 'utf8'
);
try {
$sql = new MyPDO('mysql:host=' . $dbset['server'] . ';dbname=' . $dbset['db'], $dbset['username'], $dbset['password']);
$sql->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$sql->exec("SET names utf8");
}
catch(PDOException $e) {
echo $e->getMessage();
}
//require '_classes/class.simpleDB.php';
//require '_classes/class.simpleMysqli.php';
//dbname";s:12:"shop_magazin";s:6:"dbpass";s:15:"qazxswedcvfrtgb";s:6:"dbuser";s:13:"shop_magazin2"
# Массив с параметрами
//$dbset = array('server' => 'localhost', 'username' => 'shop_magazin2', 'password' => 'qazxswedcvfrtgb', 'db' => 'shop_magazin', 'port' => 3306, 'charset' => 'utf8');
//$dbset = array('server' => $system['dbhost'], 'username' => $system['dbuser'], 'password' => $system['dbpass'], 'db' => $system['dbname'], 'port' => 3306, 'charset' => 'utf8');
//$sql = new simpleMysqli('localhost', 'shop_magazin2', 'qazxswedcvfrtgb', 'shop_magazin', '3306');
# Подключение к базе данных
//$sql = new simpleMysqli($dbset);
if ($_SERVER["HTTP_HOST"] != '3020.ru') {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://3020.ru".$_SERVER['REQUEST_URI']);
exit;
}
/**
*
* @var IP адрес
*
*/
$ipa = false;
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR']!='127.0.0.1' && preg_match("#^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$#",$_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip2['xff'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
$ipa[] = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
if(isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP']!='127.0.0.1' && preg_match("#^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$#",$_SERVER['HTTP_CLIENT_IP']))
{
$ip2['cl'] = $_SERVER['HTTP_CLIENT_IP'];
$ipa[] = $_SERVER['HTTP_CLIENT_IP'];
}
if(isset($_SERVER['REMOTE_ADDR']) && preg_match("#^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$#",$_SERVER['REMOTE_ADDR']))
{
$ip2['add'] = $_SERVER['REMOTE_ADDR'];
$ipa[] = $_SERVER['REMOTE_ADDR'];
}
$ip = $ipa[0];
$iplong = ip2long($ip);
if (isset($_SERVER['HTTP_USER_AGENT']))
{
$ua = $_SERVER['HTTP_USER_AGENT'];
$ua = strtok($ua, '/');
$ua = strtok($ua, '('); // оставляем только то, что до скобки
$ua = preg_replace('#[^a-z_./ 0-9-]#iu', null, $ua); // вырезаем все "левые" символы
// Опера мини тоже посылает данные о телефоне :)
if (isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']) && preg_match('#Opera#i',$ua))
{
$ua_om = $_SERVER['HTTP_X_OPERAMINI_PHONE_UA'];
$ua_om = strtok($ua_om, '/');
$ua_om = strtok($ua_om, '(');
$ua_om = preg_replace('#[^a-z_. 0-9-]#iu', null, $ua_om);
$ua = 'Opera Mini ('.$ua_om.')';
}
}
else $ua = 'Нет данных';
//$ip .
$signature = md5($ua);
/*
* Загрузка всех функций заканчивающиеся названиями *.func.php
* Остальные вызываются принудительно там где нужно их использование
*/
$_dirfunc = opendir(ROOT . '_system/_function/');
while ($_incfunc = readdir($_dirfunc)){
if (preg_match('#.func.php$#i', $_incfunc)){
require_once(ROOT . '_system/_function/' . $_incfunc);
}
}
/**
* Небольшой крон который срабатывает раз в сутки
* после полуночи, редактируем очень осторожно.
*/
//$sql -> delete("DELETE FROM `gosti_online` WHERE `date_last` < '".(time()-6)."'");
if ($system['cron'] <= time()) {
/*******************************
* Тут можно добавлять свой код *
*******************************/
$sql -> delete("DELETE FROM `gosti_online` WHERE `date_last` < '".(time()-600)."'");
$_dirtmp = opendir( TMP );
while ($_filetmp = readdir($_dirtmp)){
if (!preg_match('#.htaccess$#i', $_filetmp)){
@unlink( TMP . $_filetmp);
}
}
/******************************
* Дальше ничего не трогаем ****
******************************/
$_CRON = $system;
$_CRON['cron'] = mktime(0, 0, 0) + (60 * 60 * 24);
@save_dat($_CRON, 'settings.system');
}
?>