- <?php
- #-----------------------------------------------------#
- # ********* ROTORCMS ********* #
- # Made by : VANTUZ #
- # E-mail : visavi.net@mail.ru #
- # Site : http://pizdec.ru #
- # WAP-Site : http://visavi.net #
- # ICQ : 36-44-66 #
- # Вы не имеете право вносить изменения в код скрипта #
- # для его дальнейшего распространения #
- #-----------------------------------------------------#
-
- /* Режим отладки
- error_reporting(E_ALL);
- ini_set('display_errors', true);
- ini_set('html_errors', true);
- ini_set('error_reporting', E_ALL);
- */
-
- @error_reporting(E_ALL ^ E_NOTICE);
- @ini_set('display_errors', false);
- @ini_set('html_errors', false);
- @ini_set('error_reporting', E_ALL ^ E_NOTICE);
- @ini_set('url_rewriter.tags', '');
- @ini_set('session.use_trans_sid', 1);
- session_name('SID');
- session_start();
-
- $starttime = microtime(1);
- $ip = preg_replace('|[^0-9\.]|', '', $_SERVER['REMOTE_ADDR']);
- if (version_compare(PHP_VERSION, '5.2.1') < 0) {
- die('<b>Ошибка! Версия PHP должна быть 5.2.1 или выше!</b>');
- }
-
- if (get_magic_quotes_gpc()) {
- $in = array(&$_GET, &$_POST, &$_COOKIE);
- while (list($k, $v) = each($in)) {
- foreach ($v as $key => $val) {
- if (!is_array($val)) {
- $in[$k][$key] = stripslashes($val);
- continue;
- }
- $in[] = &$in[$k][$key];
- }
- }
- unset ($in);
- if (!empty ($_FILES)) {
- foreach ($_FILES as $k => $v) {
- $_FILES[$k]['name'] = stripslashes((string) $v['name']);
- }
- }
- }
-
- $level = 0;
- $folder_level = '';
- while (!file_exists($folder_level . 'input.php') && $level < 5) {
- $folder_level .= '../';
- ++$level;
- }
- unset($level);
-
- define('BASEDIR', $folder_level);
- define('DATADIR', BASEDIR . 'local/');
- define('ADMINDIR', BASEDIR . 'mpanel/');
-
- foreach ($_GET as $check_url) {
- if (is_string($check_url) && !preg_match('#^(?:[a-z0-9_\-/]+|\.+(?!/))*$#i', $check_url)) {
- $_SESSION['note'] = 'ERROR 403. Недопустимый запрос!';
- header ('Location: ' . BASEDIR . 'index.php?' . SID);
- exit;
- }
- }
- unset($check_url);
- // ---------------------------- Класс для работы с базами данных -------------------------------//
- class PDO_ extends PDO {
- function __construct($dsn, $username, $password) {
- parent :: __construct($dsn, $username, $password);
- $this -> setAttribute(PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
- $this -> setAttribute(PDO :: ATTR_DEFAULT_FETCH_MODE, PDO :: FETCH_ASSOC);
- }
-
- function prepare($sql) {
- $stmt = parent :: prepare($sql, array(
- PDO :: ATTR_STATEMENT_CLASS => array('PDOStatement_')
- ));
- return $stmt;
- }
-
- function query($sql, $params = array()) {
- $stmt = $this -> prepare($sql);
- $stmt -> execute($params);
- return $stmt;
- }
-
- function querySingle($sql, $params = array()) {
- $stmt = $this -> query($sql, $params);
- $stmt -> execute($params);
- return $stmt -> fetchColumn(0);
- }
-
- function queryFetch($sql, $params = array()) {
- $stmt = $this -> query($sql, $params);
- $stmt -> execute($params);
- return $stmt -> fetch();
- }
- }
- // ----------------------------------------------------//
- class PDOStatement_ extends PDOStatement {
- function execute($params = array()) {
- if (func_num_args() == 1) {
- $params = func_get_arg(0);
- } else {
- $params = func_get_args();
- }
- if (!is_array($params)) {
- $params = array($params);
- }
- parent :: execute($params);
- return $this;
- }
-
- function fetchSingle() {
- return $this -> fetchColumn(0);
- }
-
- function fetchAssoc() {
- $this -> setFetchMode(PDO :: FETCH_NUM);
- $data = array();
- while ($row = $this -> fetch()) {
- $data[$row[0]] = $row[1];
- }
- return $data;
- }
- }
-
- include_once (BASEDIR . 'includes/connect.php');
-
- class DB {
- static $dbh;
-
- public function __construct() {
- try {
- self :: $dbh = new PDO_('mysql:host=' . DBHOST . ';port=' . DBPORT . ';dbname=' . DBNAME, DBUSER, DBPASS);
- self :: $dbh -> exec('SET CHARACTER SET utf8');
- self :: $dbh -> exec('SET NAMES utf8');
- }
- catch (PDOException $e) {
- if (file_exists(BASEDIR . 'install/index.php')) {
- header ('Location: ' . BASEDIR . 'install/index.php');
- exit;
- }
- die('Connection failed: ' . $e -> getMessage());
- }
- }
- }
-
- $database = new DB();
-
- if (file_exists(DATADIR . 'temp/setting.dat')) {
- $config = unserialize(file_get_contents(DATADIR . 'temp/setting.dat'));
- } else {
- $queryset = DB :: $dbh -> query("SELECT `setting_name`, `setting_value` FROM `setting`;");
- $config = $queryset -> fetchAssoc();
- }
-
- define('SITETIME', time() + $config['timeclocks'] * 3600); # Установка временного сдвига сайта
-
- ?>