Файл: 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');
}
?>