Вход Регистрация
Файл: includes/start.php
Строк: 148
<?php
#---------------------------------------------#
#      ********* RotorCMS *********           #
#           Author  :  Vantuz                 #
#            Email  :  visavi.net@mail.ru     #
#             Site  :  http://visavi.net      #
#              ICQ  :  36-44-66               #
#            Skype  :  vantuzilla             #
#---------------------------------------------#
$debugmode 1;

if (
$debugmode) {
    @
error_reporting(E_ALL);
    @
ini_set('display_errors'true);
    @
ini_set('html_errors'true);
    @
ini_set('error_reporting'E_ALL);
} else {
    @
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('session.save_path', dirname($_SERVER['DOCUMENT_ROOT']).'/tmp');
session_name('SID');
session_start();

if (
version_compare(PHP_VERSION'5.2.1') < 0) {
    die(
'Ошибка! Версия PHP должна быть 5.2.1 или выше!');
}

define('STARTTIME'microtime(1));
define('BASEDIR'dirname(dirname(__FILE__)));
define('DATADIR'BASEDIR.'/local');
define('SITETIME'time());

// ---------------------------- Класс для работы с базами данных -------------------------------//
class PDO_ extends PDO {
    static 
$counter 0;

    function 
__construct($dsn$username$password) {
        
parent::__construct($dsn$username$password);
        
$this -> setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
        
$this -> setAttribute(PDO::ATTR_DEFAULT_FETCH_MODEPDO::FETCH_ASSOC);
        
$this -> setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERYtrue);
    }

    function 
prepare($sql$params = array()) {
        
$stmt parent::prepare($sql, array(
                
PDO::ATTR_STATEMENT_CLASS => array('PDOStatement_')
                ));
        return 
$stmt;
    }

    function 
query($sql$params = array()) {
        
self::$counter++;
        
$stmt $this -> prepare($sql);
        
$stmt -> execute($params);
        return 
$stmt;
    }

    function 
querySingle($sql$params = array()) {
        
$stmt $this -> query($sql$params);
        return 
$stmt -> fetchColumn(0);
    }

    function 
queryFetch($sql$params = array()) {
        
$stmt $this -> query($sql$params);
        return 
$stmt -> fetch();
    }

    function 
queryCounter() {
        return 
self::$counter;
    }
}
// ----------------------------------------------------//
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');

// --------------- Класс singleton для подключения к БД -----------------//
class DB {
    private static 
$instance;
    private function 
__construct() {}
    private function 
__clone() {}

    public static function 
run() {

        if (!isset(
self::$instance)) {

            try {
                
self::$instance = new PDO_('mysql:host='.DBHOST.';port='.DBPORT.';dbname='.DBNAMEDBUSERDBPASS);
                
self::$instance -> exec('SET CHARACTER SET utf8');
                
self::$instance -> exec('SET NAMES utf8');
            }

            catch (
PDOException $e) {
                if (
file_exists(BASEDIR.'/install/index.php')) {
                    
header ('Location: /install/index.php');
                    exit;
                }
                die(
'Connection failed: '.$e -> getMessage());
            }
        }
        return 
self::$instance;
    }

    final public function 
__destruct() {
        
self::$instance null;
    }

}

if (!
file_exists(DATADIR.'/temp/setting.dat')) {
    
$queryset DB::run() -> query("SELECT `setting_name`, `setting_value` FROM `setting`;");
    
$config $queryset -> fetchAssoc();
    
file_put_contents(DATADIR.'/temp/setting.dat'serialize($config), LOCK_EX);
}
$config unserialize(file_get_contents(DATADIR.'/temp/setting.dat'));

date_default_timezone_set($config['timezone']);

// -------- Класс валидации данных ---------- //
require_once (BASEDIR.'/includes/validation.php');
?>
Онлайн: 1
Реклама