<?
/**
* принудительно вырубаем глобальные переменные
*/ 

//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');
}

?>