/** * Constructor. * * @param array $parameters * @access public */ function phpOpenTracker_LoggingEngine_Plugin($parameters) { $this->config =& phpOpenTracker_Config::getConfig(); $this->container =& phpOpenTracker_Container::getInstance(); $this->db =& phpOpenTracker_DB::getInstance(); $this->parameters = $parameters; }
/** * Constructor. * * @param array $parameters * @access public */ function phpOpenTracker_LoggingEngine($parameters = array()) { $parameters['init'] = true; $this->config =& phpOpenTracker_Config::getConfig(); $this->container =& phpOpenTracker_Container::getInstance($parameters); $this->db =& phpOpenTracker_DB::getInstance(); $this->_loadPlugins($parameters); }
/** * Returns an instance of phpOpenTracker_DB. * * @access public * @return phpOpenTracker_DB * @static */ function &getInstance() { static $db; if (!isset($db)) { $config =& phpOpenTracker_Config::getConfig(); $dbClass = 'phpOpenTracker_DB_' . $config['db_type']; if (!@(include POT_INCLUDE_PATH . 'DB/' . $config['db_type'] . '.php')) { phpOpenTracker::handleError(sprintf('Unknown database handler "%s".', $config['db_type']), E_USER_ERROR); } $db = new $dbClass(); } return $db; }
/** * Constructor. * * @access public */ function phpOpenTracker_API() { $this->config =& phpOpenTracker_Config::getConfig(); if ($this->config['query_cache']) { @(include_once 'Cache/Lite.php'); if (class_exists('Cache_Lite')) { $this->cache = new Cache_Lite(array('cacheDir' => $this->config['query_cache_dir'], 'lifeTime' => $this->config['query_cache_lifetime'])); } else { phpOpenTracker::handleError('Could not find PEAR Cache_Lite package, Query Cache disabled.'); } } $this->_loadPlugins(); }
/** * Handles an error according to the debug_level setting. * * @param string $errorMessage * @param integer $errorType * @return boolean * @access public * @static */ function handleError($errorMessage, $errorType = E_USER_WARNING) { $config =& phpOpenTracker_Config::getConfig(); $prefix = 'phpOpenTracker ' . ($errorType == E_USER_ERROR ? 'Error' : 'Warning') . ': '; if ($config['debug_level'] > 0) { print $prefix . $errorMessage; } if ($config['log_errors']) { @error_log(sprintf("%s: %s\n", date('d-m-Y H:i:s', time()), $errorMessage), 3, $config['log_errors'] != 'error.log' ? $config['log_errors'] : dirname(__FILE__) . '/' . 'error.log'); } if ($config['exit_on_fatal_errors'] && $errorType == E_USER_ERROR) { exit; } return false; }
$query = "\n\t\tCREATE TABLE IF NOT EXISTS iShark_Stat_Hostnames (\n\t\t\tdata_id INT(11) NOT NULL,\n\t\t\tstring VARCHAR(255) NOT NULL,\n\t\tPRIMARY KEY (data_id)\n\t\t)\n\t"; $mdb2->exec($query); $query = "\n\t\tCREATE TABLE IF NOT EXISTS iShark_Stat_Operating_Systems (\n\t\t\tdata_id INT(11) NOT NULL,\n\t\t\tstring VARCHAR(255) NOT NULL,\n\t\tPRIMARY KEY (data_id)\n\t\t)\n\t"; $mdb2->exec($query); $query = "\n\t\tCREATE TABLE IF NOT EXISTS iShark_Stat_Referers (\n\t\t\tdata_id INT(11) NOT NULL,\n\t\t\tstring VARCHAR(255) NOT NULL,\n\t\tPRIMARY KEY (data_id)\n\t\t)\n\t"; $mdb2->exec($query); $query = "\n\t\tCREATE TABLE IF NOT EXISTS iShark_Stat_User_Agents (\n\t\t\tdata_id INT(11) NOT NULL,\n\t\t\tstring VARCHAR(255) NOT NULL,\n\t\tPRIMARY KEY (data_id)\n\t\t)\n\t"; $mdb2->exec($query); $query = "\n\t\tCREATE TABLE IF NOT EXISTS iShark_Stat_Visitors (\n\t\t\taccesslog_id INT(11) NOT NULL,\n\t\t\tvisitor_id INT(11) NOT NULL,\n\t\t\tclient_id INT(10) UNSIGNED NOT NULL,\n\t\t\toperating_system_id INT(11) NOT NULL,\n\t\t\tuser_agent_id INT(11) NOT NULL,\n\t\t\thost_id INT(11) NOT NULL,\n\t\t\treferer_id INT(11) NOT NULL,\n\t\t\ttimestamp INT(10) UNSIGNED NOT NULL,\n\t\t\tweekday TINYINT(1) UNSIGNED NOT NULL,\n\t\t\t`hour` TINYINT(2) UNSIGNED NOT NULL,\n\t\t\treturning_visitor TINYINT(1) UNSIGNED NOT NULL,\n\t\tPRIMARY KEY (accesslog_id),\n\t\tKEY client_time (client_id, timestamp)\n\t\t)\n\t"; $mdb2->exec($query); $query = "\n\t\tCREATE TABLE IF NOT EXISTS iShark_Stat_Search_Engines (\n\t\t\taccesslog_id INT(11) NOT NULL,\n\t\t\tsearch_engine VARCHAR(255) NOT NULL,\n\t\t\tkeywords VARCHAR(255) NOT NULL,\n\t\tPRIMARY KEY (accesslog_id)\n\t\t)\n\t"; $mdb2->exec($query); $query = "\n\t\tCREATE TABLE IF NOT EXISTS iShark_Stat_Localizer (\n\t\t\taccesslog_id INT(11) NOT NULL,\n\t\t\tclient_id INT(10) NOT NULL,\n\t\t\tip VARCHAR(15) NOT NULL,\n\t\t\tcountry VARCHAR(100) NOT NULL,\n\t\t\tiso2 VARCHAR(2) NOT NULL,\n\t\t\tiso3 VARCHAR(3) NOT NULL,\n\t\t\tfips104 VARCHAR(2) NOT NULL,\n\t\t\tiso_number DECIMAL(5,2) NOT NULL,\n\t\t\tflag VARCHAR(6) NOT NULL,\n\t\t\tregion VARCHAR(30) NOT NULL,\n\t\t\tcapital VARCHAR(50) NOT NULL,\n\t\t\tcurrency VARCHAR(30) NOT NULL,\n\t\t\tcurrency_code VARCHAR(3) NOT NULL,\n\t\tPRIMARY KEY (accesslog_id),\n\t\tINDEX client_id (client_id, iso2, capital)\n\t\t)\n\t"; $mdb2->exec($query); } // Month Names $monthNames = array(1 => $locale->get('month_january'), $locale->get('month_february'), $locale->get('month_march'), $locale->get('month_april'), $locale->get('month_may'), $locale->get('month_june'), $locale->get('month_july'), $locale->get('month_august'), $locale->get('month_september'), $locale->get('month_october'), $locale->get('month_november'), $locale->get('month_december')); // Load phpOpenTracker require_once 'phpOpenTracker.php'; // Handle HTTP GET parameters $clientID = isset($_GET['client_id']) ? $_GET['client_id'] : 1; $day = isset($_GET['day']) ? $_GET['day'] : date('j'); $month = isset($_GET['month']) ? $_GET['month'] : date('n'); $year = isset($_GET['year']) ? $_GET['year'] : date('Y'); $time = time(); // Get references to phpOpenTracker's configuration // and database objects $config =& phpOpenTracker_Config::getConfig(); $db =& phpOpenTracker_DB::getInstance(); // megfelelo ful programjanak betoltese include_once $module_name . "_{$page}.php";
/** * Sets the value of a configuration directive. * * @param string $directive * @param mixed $value * @access public * @static * @since phpOpenTracker 1.2.0 */ function set($directive, $value) { $config =& phpOpenTracker_Config::getConfig(); $config[$directive] = $value; }
/** * Returns a reference to phpOpenTracker's session container. * * The first call to this method during a request triggers, if * $parameters['init'] is not set to false, the generation of * the session container array. * * @param array $parameters * @return array * @access public * @static */ function &getInstance($parameters = array()) { static $isInitialized; $init = isset($parameters['init']) ? $parameters['init'] : false; $initAPI = isset($parameters['initAPI']) ? $parameters['initAPI'] : false; $initNoSetup = isset($parameters['initNoSetup']) ? $parameters['initNoSetup'] : false; $isInitialized = isset($isInitialized) ? $isInitialized : false; if ($initAPI) { $init = true; $isInitialized = false; } else { if ($initNoSetup) { $init = true; } } if ($isInitialized && !$init) { return $_SESSION['_phpOpenTracker_Container']; } if ($init && !$initAPI) { session_register('_phpOpenTracker_Container'); $container =& $_SESSION['_phpOpenTracker_Container']; } if ($init && !$isInitialized && !$initNoSetup) { $config =& phpOpenTracker_Config::getConfig(); $db =& phpOpenTracker_DB::getInstance(); $parameters['client_id'] = isset($parameters['client_id']) ? $parameters['client_id'] : 1; $container['first_request'] = isset($container['first_request']) ? false : true; if ($container['first_request']) { $client_id_switched = false; } else { if ($container['client_id'] != $parameters['client_id']) { $container['first_request'] = true; $client_id_switched = true; } } $container['client_id'] = $parameters['client_id']; if ($container['first_request']) { if (function_exists('posix_getpid')) { $container['accesslog_id'] = crc32(microtime() . posix_getpid()); } else { $container['accesslog_id'] = crc32(microtime() . session_id()); } if (!$client_id_switched) { if (!isset($parameters['host']) && !isset($parameters['ip_address'])) { if (isset($_SERVER['REMOTE_ADDR'])) { $container['ip_address'] = $_SERVER['REMOTE_ADDR']; if (isset($_SERVER['REMOTE_HOST'])) { $container['host_orig'] = $_SERVER['REMOTE_HOST']; } else { if ($config['resolve_hostname']) { $container['host_orig'] = gethostbyaddr($container['ip_address']); } else { $container['host_orig'] = $container['ip_address']; } } } else { $container['host_orig'] = ''; $container['ip_address'] = ''; } } else { $container['host_orig'] = isset($parameters['host']) ? $parameters['host'] : ''; $container['ip_address'] = isset($parameters['ip_address']) ? $parameters['ip_address'] : ''; } $container['host'] = $container['host_orig']; if ($config['group_hostnames']) { $container['host'] = phpOpenTracker_Parser::hostname($container['host']); } if (isset($parameters['user_agent'])) { $container['user_agent_orig'] = $parameters['user_agent']; } else { $container['user_agent_orig'] = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; } if ($config['group_user_agents']) { $container = array_merge($container, phpOpenTracker_Parser::userAgent($container['user_agent_orig'])); } else { $container['operating_system'] = 'Not identified'; $container['user_agent'] = $container['user_agent_orig']; } $container['host_id'] = $db->storeIntoDataTable($config['hostnames_table'], $container['host']); $container['operating_system_id'] = $db->storeIntoDataTable($config['operating_systems_table'], $container['operating_system']); $container['user_agent_id'] = $db->storeIntoDataTable($config['user_agents_table'], $container['user_agent']); } if (isset($parameters['referer'])) { $container['referer_orig'] = $parameters['referer']; } else { $container['referer_orig'] = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; } $container['referer_orig'] = urldecode($container['referer_orig']); if ($config['clean_referer_string']) { $container['referer'] = preg_replace('/(\\?.*)/', '', $container['referer_orig']); } else { $container['referer'] = $container['referer_orig']; } if (!empty($container['referer'])) { $container['referer'] = str_replace(array('http://', 'https://'), '', $container['referer']); } $container['referer_id'] = $db->storeIntoDataTable($config['referers_table'], $container['referer']); } else { $container['last_document'] = $container['document']; } $container['document_url'] = isset($parameters['document_url']) ? $parameters['document_url'] : urldecode($_SERVER[$config['document_env_var']]); if ($config['clean_query_string']) { $container['document_url'] = preg_replace('/(\\?.*)/', '', $container['document_url']); } else { if ($config['get_parameter_filter'] != '') { $filters = explode(',', str_replace(' ', '', $config['get_parameter_filter'])); } else { $filters = array(); } $filters[] = session_name(); foreach ($filters as $filter) { $container['document_url'] = preg_replace('#\\?' . $filter . '=.*$|&' . $filter . '=.*$|' . $filter . '=.*&#msiU', '', $container['document_url']); } } $container['document'] = isset($parameters['document']) ? $parameters['document'] : $container['document_url']; $container['document_id'] = $db->storeIntoDataTable($config['documents_table'], $container['document'], $container['document_url']); $container['plugin_data'] = isset($parameters['plugin_data']) ? $parameters['plugin_data'] : array(); $container['timestamp'] = isset($parameters['timestamp']) ? $parameters['timestamp'] : time(); $isInitialized = true; } return $container; }
/** * Constructor. * * @access public */ function phpOpenTracker_API_Plugin() { $this->config =& phpOpenTracker_Config::getConfig(); $this->container =& phpOpenTracker_Container::getInstance(); $this->db =& phpOpenTracker_DB::getInstance(); }
// Copyright 2000 - 2005 Sebastian Bergmann. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // include_once 'includes/config_mdb2.php'; $PHPOPENTRACKER_CONFIGURATION =& phpOpenTracker_Config::getConfig(); /** * phpOpenTracker Configuration File * * This file contains global configuration settings for phpOpenTracker. * Values may be safely edited by hand. * Uncomment only values that you intend to change. * * Strings should be enclosed in 'quotes'. * Integers should be given literally (without quotes). * Boolean values may be true or false (never quotes). */ // Database $PHPOPENTRACKER_CONFIGURATION['db_type'] = $dsn['phptype']; // Available values: 'mssql', 'mysql', 'mysql_merge', 'oci8', 'pgsql' $PHPOPENTRACKER_CONFIGURATION['db_host'] = $dsn['hostspec'];