'exception', 'TNestedArrayObject' => 'nested', 'EDatabase' => 'db', 'TLatLon' => 'spatial'); $file = $classes . strtolower(substr($classname, 1)) . '.php'; if (file_exists($file)) { require_once $file; } else { //echo $classname; require_once $classes . $classmap[$classname] . '.php'; } } error_reporting(E_ALL); TErrorHandler::initialize(); // load configuration $c = new TConfig($config); // configure environment ini_set('session.gc_maxlifetime', $c->session->garbage_timeout); ini_set('session.cookie_lifetime', $c->session->cookie_timeout); ini_set('session.cookie_path', $c->session->cookie_path); ini_set('session.name', $c->session->name); ini_set('session.use_only_cookies', true); // initialize context //$r = new TRun(); // intitialize language $l = new TLanguage($c->general->language); // initialize database connection require_once $root . '/include/classes/' . $c->db->backend . '.php'; $db = new TMySql($c->db->host, $c->db->user, $c->db->pw, $c->db->db); // Against session highjacking if(empty($_SESSION['ip']) || empty($_SESSION['ua'])) { $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; $_SESSION['ua'] = $_SERVER['HTTP_USER_AGENT']; } if(substr($_SESSION['ip'], 0, strrpos($_SESSION['ip'], '.')) != substr($_SERVER['REMOTE_ADDR'], 0, strrpos($_SERVER['REMOTE_ADDR'], '.'))) { trigger_error('Session cookie hijacked: IP subset changed', E_USER_ERROR); exit('Session cookie hijacked: IP subset changed! Killing myself...'); } if ($_SESSION['ua'] != $_SERVER['HTTP_USER_AGENT'] && !empty($_SESSION['usr_id'])) { trigger_error('Session cookie hijacked: Useragent changed', E_USER_ERROR); exit('Session cookie hijacked: Useragent changed! Killing myself...'); } ?>