diff --git a/src/include/functions_common.php b/src/include/functions_common.php
index 3c7554f..777f823 100644
--- a/src/include/functions_common.php
+++ b/src/include/functions_common.php
@@ -1,1070 +1,1068 @@
- www.phplogcon.org <- *
- * ----------------------------------------------------------------- *
- * Common needed functions *
- * *
- * -> *
- * *
- * All directives are explained within this file *
- *
- * Copyright (C) 2008 Adiscon GmbH.
- *
- * This file is part of phpLogCon.
- *
- * PhpLogCon is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * PhpLogCon is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with phpLogCon. If not, see .
- *
- * A copy of the GPL can be found in the file "COPYING" in this
- * distribution.
- *********************************************************************
-*/
-
-// --- Avoid directly accessing this file!
-if ( !defined('IN_PHPLOGCON') )
-{
- die('Hacking attempt');
- exit;
-}
-// ---
-
-// --- Basic Includes
-include($gl_root_path . 'include/constants_general.php');
-include($gl_root_path . 'include/constants_logstream.php');
-
-/*
-if ( is_file($gl_root_path . 'config.php') )
- include($gl_root_path . 'config.php');
-else
-{
- // Check for installscript!
- if ( !defined('IN_PHPLOGCON_INSTALL') )
- CheckForInstallPhp();
-}
-*/
-
-include($gl_root_path . 'classes/class_template.php');
-include($gl_root_path . 'include/functions_themes.php');
-include($gl_root_path . 'include/functions_db.php');
-include($gl_root_path . 'include/functions_config.php');
-// ---
-
-// --- Define Basic vars
-$RUNMODE = RUNMODE_WEBSERVER;
-$DEBUGMODE = DEBUG_INFO;
-
-// --- Disable ARGV setting @webserver!
-ini_set( "register_argc_argv", "Off" );
-// ---
-
-// Default language
-$LANG_EN = "en"; // Used for fallback
-$LANG = "en"; // Default language
-
-// Default Template vars
-$content['BUILDNUMBER'] = "2.3.4";
-$content['TITLE'] = "phpLogCon :: Release " . $content['BUILDNUMBER']; // Default page title
-$content['BASEPATH'] = $gl_root_path;
-$content['EXTRA_METATAGS'] = "";
-$content['EXTRA_JAVASCRIPT'] = "";
-$content['EXTRA_STYLESHEET'] = "";
-// ---
-
-// --- Check PHP Version! If lower the 5, phplogcon will not work proberly!
-$myPhpVer = phpversion();
-$myPhpVerArray = explode('.', $myPhpVer);
-if ( $myPhpVerArray[0] < 5 )
- DieWithErrorMsg( 'Error, the PHP Version on this Server does not meet the installation requirements. PHP5 or higher is needed. Current installed Version is: ' . $myPhpVer . ' ');
-// ---
-
-function InitBasicPhpLogCon()
-{
- // Needed to make global
- global $CFG, $gl_root_path, $content;
-
- // Check RunMode first!
- CheckAndSetRunMode();
-
- // Set the default line sep
- SetLineBreakVar();
-
- // Start the PHP Session
- StartPHPSession();
-}
-
-function InitPhpLogConConfigFile($bHandleMissing = true)
-{
- // Needed to make global
- global $CFG, $gl_root_path, $content;
-
- if ( file_exists($gl_root_path . 'config.php') && GetFileLength($gl_root_path . 'config.php') > 0 )
- {
- // Include the main config
- include_once($gl_root_path . 'config.php');
-
- // Easier DB Access
- define('DB_CONFIG', $CFG['UserDBPref'] . "config");
-
- // If DEBUG Mode is enabled, we prepend the UID field into the col list!
- if ( $CFG['MiscShowDebugMsg'] == 1 )
- array_unshift($CFG['Columns'], SYSLOG_UID);
-
- // Now Copy all entries into content variable
- foreach ($CFG as $key => $value )
- $content[$key] = $value;
-
- // For MiscShowPageRenderStats
- if ( $CFG['MiscShowPageRenderStats'] == 1 )
- {
- $content['ShowPageRenderStats'] = "true";
- InitPageRenderStats();
- }
-
- // return result
- return true;
- }
- else
- {
- // if handled ourselfe, we die in CheckForInstallPhp.
- if ( $bHandleMissing == true )
- {
- // Check for installscript!
- CheckForInstallPhp();
- }
- else
- return false;
- }
-}
-
-function CheckForInstallPhp()
-{
- // Check for installscript!
- if ( file_exists($content['BASEPATH'] . "install.php") )
- $strinstallmsg = ' '
- . '
Click here to Install PhpLogCon! '
-// . 'See the Installation Guides for more Details! '
-// . 'English Installation Guide | '
-// . 'German Installation Guide '
-// . 'Also take a look to the Readme for some basics around PhpLogCon! '
- . ' ';
- else
- $strinstallmsg = "";
- DieWithErrorMsg( 'Error, main configuration file is missing!' . $strinstallmsg );
-}
-
-function GetFileLength($szFileName)
-{
- if ( is_file($szFileName) )
- return filesize($szFileName);
- else
- return 0;
-}
-
-function InitPhpLogCon()
-{
- // Needed to make global
- global $CFG, $gl_root_path, $content;
-
- // Init Basics which do not need a database
- InitBasicPhpLogCon();
-
- // Will init the config file!
- InitPhpLogConConfigFile();
-
- // Moved here, because we do not need if GZIP needs to be enabled before the config is loaded!
- InitRuntimeInformations();
-
- // Establish DB Connection
- if ( $CFG['UserDBEnabled'] )
- DB_Connect();
-
- // Now load the Page configuration values
- InitConfigurationValues();
-
- // Now Create Themes List because we haven't the config before!
- CreateThemesList();
-
- // Create Language List
- CreateLanguageList();
-
- // Init Predefined Searches List
- CreatePredefinedSearches();
-
- // Init predefined paging sizes
- CreatePagesizesList();
-
- // Init predefined reload times
- CreateReloadTimesList();
-
- // --- Enable PHP Debug Mode
- InitPhpDebugMode();
- // ---
-}
-
-function CreateLogLineTypesList( $selectedType )
-{
- global $content;
-
- // syslog
- $content['LOGLINETYPES']["syslog"]['type'] = "syslog";
- $content['LOGLINETYPES']["syslog"]['DisplayName'] = "Syslog / RSyslog";
- if ( $selectedType == $content['LOGLINETYPES']["syslog"]['type'] ) { $content['LOGLINETYPES']["syslog"]['selected'] = "selected"; } else { $content['LOGLINETYPES']["syslog"]['selected'] = ""; }
-
- // Adiscon Winsyslog
- $content['LOGLINETYPES']["winsyslog"]['type'] = "winsyslog";
- $content['LOGLINETYPES']["winsyslog"]['DisplayName'] = "Adiscon WinSyslog";
- if ( $selectedType == $content['LOGLINETYPES']["winsyslog"]['type'] ) { $content['LOGLINETYPES']["winsyslog"]['selected'] = "selected"; } else { $content['LOGLINETYPES']["winsyslog"]['selected'] = ""; }
-}
-
-function CreateSourceTypesList( $selectedSource )
-{
- global $content;
-
- // SOURCE_DISK
- $content['SOURCETYPES'][SOURCE_DISK]['type'] = SOURCE_DISK;
- $content['SOURCETYPES'][SOURCE_DISK]['DisplayName'] = $content['LN_GEN_SOURCE_DISK'];
- if ( $selectedSource == $content['SOURCETYPES'][SOURCE_DISK]['type'] ) { $content['SOURCETYPES'][SOURCE_DISK]['selected'] = "selected"; } else { $content['SOURCETYPES'][SOURCE_DISK]['selected'] = ""; }
-
- // SOURCE_DB ( MYSQL NATIVE )
- $content['SOURCETYPES'][SOURCE_DB]['type'] = SOURCE_DB;
- $content['SOURCETYPES'][SOURCE_DB]['DisplayName'] = $content['LN_GEN_SOURCE_DB'];
- if ( $selectedSource == $content['SOURCETYPES'][SOURCE_DB]['type'] ) { $content['SOURCETYPES'][SOURCE_DB]['selected'] = "selected"; } else { $content['SOURCETYPES'][SOURCE_DB]['selected'] = ""; }
-
- // SOURCE_PDO ( PDO DB Wrapper)
- $content['SOURCETYPES'][SOURCE_PDO]['type'] = SOURCE_PDO;
- $content['SOURCETYPES'][SOURCE_PDO]['DisplayName'] = $content['LN_GEN_SOURCE_PDO'];
- if ( $selectedSource == $content['SOURCETYPES'][SOURCE_PDO]['type'] ) { $content['SOURCETYPES'][SOURCE_PDO]['selected'] = "selected"; } else { $content['SOURCETYPES'][SOURCE_PDO]['selected'] = ""; }
-}
-
-function CreateDBTypesList( $selectedDBType )
-{
- global $content;
-
- // DB_MYSQL
- $content['DBTYPES'][DB_MYSQL]['type'] = DB_MYSQL;
- $content['DBTYPES'][DB_MYSQL]['typeastext'] = "DB_MYSQL";
- $content['DBTYPES'][DB_MYSQL]['DisplayName'] = $content['LN_GEN_DB_MYSQL'];
- if ( $selectedDBType == $content['DBTYPES'][DB_MYSQL]['type'] ) { $content['DBTYPES'][DB_MYSQL]['selected'] = "selected"; } else { $content['DBTYPES'][DB_MYSQL]['selected'] = ""; }
-
- // DB_MSSQL
- $content['DBTYPES'][DB_MSSQL]['type'] = DB_MSSQL;
- $content['DBTYPES'][DB_MSSQL]['typeastext'] = "DB_MSSQL";
- $content['DBTYPES'][DB_MSSQL]['DisplayName'] = $content['LN_GEN_DB_MSSQL'];
- if ( $selectedDBType == $content['DBTYPES'][DB_MSSQL]['type'] ) { $content['DBTYPES'][DB_MSSQL]['selected'] = "selected"; } else { $content['DBTYPES'][DB_MSSQL]['selected'] = ""; }
-
- // DB_ODBC
- $content['DBTYPES'][DB_ODBC]['type'] = DB_ODBC;
- $content['DBTYPES'][DB_ODBC]['typeastext'] = "DB_ODBC";
- $content['DBTYPES'][DB_ODBC]['DisplayName'] = $content['LN_GEN_DB_ODBC'];
- if ( $selectedDBType == $content['DBTYPES'][DB_ODBC]['type'] ) { $content['DBTYPES'][DB_ODBC]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_ODBC]['selected'] = ""; }
-
- // DB_PGSQL
- $content['DBTYPES'][DB_PGSQL]['type'] = DB_PGSQL;
- $content['DBTYPES'][DB_PGSQL]['typeastext'] = "DB_PGSQL";
- $content['DBTYPES'][DB_PGSQL]['DisplayName'] = $content['LN_GEN_DB_PGSQL'];
- if ( $selectedDBType == $content['DBTYPES'][DB_PGSQL]['type'] ) { $content['DBTYPES'][DB_PGSQL]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_PGSQL]['selected'] = ""; }
-
- // DB_OCI
- $content['DBTYPES'][DB_OCI]['type'] = DB_OCI;
- $content['DBTYPES'][DB_OCI]['typeastext'] = "DB_OCI";
- $content['DBTYPES'][DB_OCI]['DisplayName'] = $content['LN_GEN_DB_OCI'];
- if ( $selectedDBType == $content['DBTYPES'][DB_OCI]['type'] ) { $content['DBTYPES'][DB_OCI]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_OCI]['selected'] = ""; }
-
- // DB_DB2
- $content['DBTYPES'][DB_DB2]['type'] = DB_DB2;
- $content['DBTYPES'][DB_DB2]['typeastext'] = "DB_DB2";
- $content['DBTYPES'][DB_DB2]['DisplayName'] = $content['LN_GEN_DB_DB2'];
- if ( $selectedDBType == $content['DBTYPES'][DB_DB2]['type'] ) { $content['DBTYPES'][DB_DB2]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_DB2]['selected'] = ""; }
-
- // DB_FIREBIRD
- $content['DBTYPES'][DB_FIREBIRD]['type'] = DB_FIREBIRD;
- $content['DBTYPES'][DB_FIREBIRD]['typeastext'] = "DB_FIREBIRD";
- $content['DBTYPES'][DB_FIREBIRD]['DisplayName'] = $content['LN_GEN_DB_FIREBIRD'];
- if ( $selectedDBType == $content['DBTYPES'][DB_FIREBIRD]['type'] ) { $content['DBTYPES'][DB_FIREBIRD]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_FIREBIRD]['selected'] = ""; }
-
- // DB_INFORMIX
- $content['DBTYPES'][DB_INFORMIX]['type'] = DB_INFORMIX;
- $content['DBTYPES'][DB_INFORMIX]['typeastext'] = "DB_INFORMIX";
- $content['DBTYPES'][DB_INFORMIX]['DisplayName'] = $content['LN_GEN_DB_INFORMIX'];
- if ( $selectedDBType == $content['DBTYPES'][DB_INFORMIX]['type'] ) { $content['DBTYPES'][DB_INFORMIX]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_INFORMIX]['selected'] = ""; }
-
- // DB_SQLITE
- $content['DBTYPES'][DB_SQLITE]['type'] = DB_SQLITE;
- $content['DBTYPES'][DB_SQLITE]['typeastext'] = "DB_SQLITE";
- $content['DBTYPES'][DB_SQLITE]['DisplayName'] = $content['LN_GEN_DB_SQLITE'];
- if ( $selectedDBType == $content['DBTYPES'][DB_SQLITE]['type'] ) { $content['DBTYPES'][DB_SQLITE]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_SQLITE]['selected'] = ""; }
-}
-
-function CreatePagesizesList()
-{
- global $CFG, $content;
-
- $iCounter = 0;
- $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => $content['LN_GEN_PRECONFIGURED'] . " (" . $CFG['ViewEntriesPerPage'] . ")", "Value" => $CFG['ViewEntriesPerPage'] ); $iCounter++;
- $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 25 " . $content['LN_GEN_RECORDSPERPAGE'], "Value" => 25 ); $iCounter++;
- $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 50 " . $content['LN_GEN_RECORDSPERPAGE'], "Value" => 50 ); $iCounter++;
- $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 75 " . $content['LN_GEN_RECORDSPERPAGE'], "Value" => 75 ); $iCounter++;
- $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 100 " . $content['LN_GEN_RECORDSPERPAGE'], "Value" => 100 ); $iCounter++;
- $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 250 " . $content['LN_GEN_RECORDSPERPAGE'], "Value" => 250 ); $iCounter++;
- $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 500 " . $content['LN_GEN_RECORDSPERPAGE'], "Value" => 500 ); $iCounter++;
-
- // Set default selected pagesize
- $content['pagesizes'][ $_SESSION['PAGESIZE_ID'] ]["Selected"] = "selected";
-
- // The content variable will now contain the user selected oaging size
- $content["ViewEntriesPerPage"] = $content['pagesizes'][ $_SESSION['PAGESIZE_ID'] ]["Value"];
-}
-
-function CreateReloadTimesList()
-{
- global $CFG, $content;
-
-// $CFG['ViewEnableAutoReloadSeconds']
- $iCounter = 0;
- $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => $content['LN_AUTORELOAD_DISABLED'], "Value" => 0 ); $iCounter++;
- if ( isset($CFG['ViewEnableAutoReloadSeconds']) && $CFG['ViewEnableAutoReloadSeconds'] > 0 )
- {
- $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => $content['LN_AUTORELOAD_PRECONFIGURED'] . " (" . $CFG['ViewEnableAutoReloadSeconds'] . " " . $content['LN_AUTORELOAD_SECONDS'] . ") ", "Value" => $CFG['ViewEnableAutoReloadSeconds'] ); $iCounter++;
- }
- $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 5 " . $content['LN_AUTORELOAD_SECONDS'], "Value" => 5 ); $iCounter++;
- $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 10 " . $content['LN_AUTORELOAD_SECONDS'], "Value" => 10 ); $iCounter++;
- $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 15 " . $content['LN_AUTORELOAD_SECONDS'], "Value" => 15 ); $iCounter++;
- $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 30 " . $content['LN_AUTORELOAD_SECONDS'], "Value" => 30 ); $iCounter++;
- $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 60 " . $content['LN_AUTORELOAD_SECONDS'], "Value" => 60 ); $iCounter++;
- $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 5 " . $content['LN_AUTORELOAD_MINUTES'], "Value" => 300 ); $iCounter++;
- $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 10 " . $content['LN_AUTORELOAD_MINUTES'], "Value" => 600 ); $iCounter++;
- $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 15 " . $content['LN_AUTORELOAD_MINUTES'], "Value" => 900 ); $iCounter++;
- $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 30 " . $content['LN_AUTORELOAD_MINUTES'], "Value" => 1800 ); $iCounter++;
-
- // Set default selected autoreloadid
- $content['reloadtimes'][ $_SESSION['AUTORELOAD_ID'] ]["Selected"] = "selected";
-
- // The content variable will now contain the user selected oaging size
- $content["ViewEnableAutoReloadSeconds"] = $content['reloadtimes'][ $_SESSION['AUTORELOAD_ID'] ]["Value"];
-
-}
-
-function CreatePredefinedSearches()
-{
- global $CFG, $content;
- if ( isset($CFG['Search']) )
- {
- // Enable predefined searches
- $content['EnablePredefinedSearches'] = true;
-
- // Loop through all predefined searches!
- foreach ($CFG['Search'] as $mykey => $mySearch)
- {
- // Copy configured searches into content array!
- $content['Search'][$mykey]["ID"] = $mykey;
- $content['Search'][$mykey]["Selected"] = false;
-
- // --- Set CSS Class
- if ( $mykey % 2 == 0 )
- $content['Search'][$mykey]['cssclass'] = "line1";
- else
- $content['Search'][$mykey]['cssclass'] = "line2";
- // ---
-
- }
- }
- else // Disable predefined searches
- $content['EnablePredefinedSearches'] = false;
-}
-
-function InitPhpDebugMode()
-{
- global $content, $CFG;
-
- // --- Set Global DEBUG Level!
- if ( $CFG['MiscShowDebugMsg'] == 1 )
- ini_set( "error_reporting", E_ALL ); // ALL PHP MESSAGES!
-// else
-// ini_set( "error_reporting", E_ERROR ); // ONLY PHP ERROR'S!
- // ---
-}
-
-function CheckAndSetRunMode()
-{
- global $RUNMODE, $MaxExecutionTime;
- // Set to command line mode if argv is set!
- if ( !isset($_SERVER["GATEWAY_INTERFACE"]) )
- $RUNMODE = RUNMODE_COMMANDLINE;
-
- // Obtain max_execution_time
- $MaxExecutionTime = ini_get("max_execution_time");
-}
-
-function InitRuntimeInformations()
-{
- global $content, $CFG;
-
- // TODO| maybe not needed!
-
- // Enable GZIP Compression if enabled!
- if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false && (isset($CFG['MiscEnableGzipCompression']) && $CFG['MiscEnableGzipCompression'] == 1) )
- {
- // This starts gzip compression!
- ob_start("ob_gzhandler");
- $content['GzipCompressionEnmabled'] = "yes";
- }
- else
- $content['GzipCompressionEnmabled'] = "no";
-}
-
-function CreateDebugModes()
-{
- global $content;
-
- $content['DBGMODES'][0]['DisplayName'] = STR_DEBUG_ULTRADEBUG;
- if ( $content['parser_debugmode'] == $content['DBGMODES'][0]['DisplayName'] ) { $content['DBGMODES'][0]['selected'] = "selected"; } else { $content['DBGMODES'][0]['selected'] = ""; }
- $content['DBGMODES'][1]['DisplayName'] = STR_DEBUG_DEBUG;
- if ( $content['parser_debugmode'] == $content['DBGMODES'][1]['DisplayName'] ) { $content['DBGMODES'][1]['selected'] = "selected"; } else { $content['DBGMODES'][1]['selected'] = ""; }
- $content['DBGMODES'][2]['DisplayName'] = STR_DEBUG_INFO;
- if ( $content['parser_debugmode'] == $content['DBGMODES'][2]['DisplayName'] ) { $content['DBGMODES'][2]['selected'] = "selected"; } else { $content['DBGMODES'][2]['selected'] = ""; }
- $content['DBGMODES'][3]['DisplayName'] = STR_DEBUG_WARN;
- if ( $content['parser_debugmode'] == $content['DBGMODES'][3]['DisplayName'] ) { $content['DBGMODES'][3]['selected'] = "selected"; } else { $content['DBGMODES'][3]['selected'] = ""; }
- $content['DBGMODES'][4]['DisplayName'] = STR_DEBUG_ERROR;
- if ( $content['parser_debugmode'] == $content['DBGMODES'][4]['DisplayName'] ) { $content['DBGMODES'][4]['selected'] = "selected"; } else { $content['DBGMODES'][4]['selected'] = ""; }
-}
-
-function InitFrontEndVariables()
-{
- global $content;
-
- $content['MENU_FOLDER_OPEN'] = $content['BASEPATH'] . "images/icons/folder_closed.png";
- $content['MENU_FOLDER_CLOSED'] = $content['BASEPATH'] . "images/icons/folder.png";
- $content['MENU_HOMEPAGE'] = $content['BASEPATH'] . "images/icons/home.png";
- $content['MENU_LINK'] = $content['BASEPATH'] . "images/icons/link.png";
- $content['MENU_LINK_VIEW'] = $content['BASEPATH'] . "images/icons/link_view.png";
- $content['MENU_VIEW'] = $content['BASEPATH'] . "images/icons/view.png";
- $content['MENU_PREFERENCES'] = $content['BASEPATH'] . "images/icons/preferences.png";
- $content['MENU_ADMINENTRY'] = $content['BASEPATH'] . "images/icons/star_blue.png";
- $content['MENU_ADMINLOGOFF'] = $content['BASEPATH'] . "images/icons/exit.png";
- $content['MENU_ADMINUSERS'] = $content['BASEPATH'] . "images/icons/businessmen.png";
- $content['MENU_SEARCH'] = $content['BASEPATH'] . "images/icons/view.png";
- $content['MENU_SELECTION_DISABLED'] = $content['BASEPATH'] . "images/icons/selection.png";
- $content['MENU_SELECTION_ENABLED'] = $content['BASEPATH'] . "images/icons/selection_delete.png";
- $content['MENU_TEXT_FIND'] = $content['BASEPATH'] . "images/icons/text_find.png";
- $content['MENU_NETWORK'] = $content['BASEPATH'] . "images/icons/earth_network.png";
-
-
- $content['MENU_PAGER_BEGIN'] = $content['BASEPATH'] . "images/icons/media_beginning.png";
- $content['MENU_PAGER_PREVIOUS'] = $content['BASEPATH'] . "images/icons/media_rewind.png";
- $content['MENU_PAGER_NEXT'] = $content['BASEPATH'] . "images/icons/media_fast_forward.png";
- $content['MENU_PAGER_END'] = $content['BASEPATH'] . "images/icons/media_end.png";
- $content['MENU_NAV_LEFT'] = $content['BASEPATH'] . "images/icons/navigate_left.png";
- $content['MENU_NAV_RIGHT'] = $content['BASEPATH'] . "images/icons/navigate_right.png";
- $content['MENU_NAV_CLOSE'] = $content['BASEPATH'] . "images/icons/navigate_close.png";
- $content['MENU_NAV_OPEN'] = $content['BASEPATH'] . "images/icons/navigate_open.png";
- $content['MENU_PAGER_BEGIN_GREY'] = $content['BASEPATH'] . "images/icons/grey/media_beginning.png";
- $content['MENU_PAGER_PREVIOUS_GREY'] = $content['BASEPATH'] . "images/icons/grey/media_rewind.png";
- $content['MENU_PAGER_NEXT_GREY'] = $content['BASEPATH'] . "images/icons/grey/media_fast_forward.png";
- $content['MENU_PAGER_END_GREY'] = $content['BASEPATH'] . "images/icons/grey/media_end.png";
-
- $content['MENU_BULLET_BLUE'] = $content['BASEPATH'] . "images/icons/bullet_ball_glass_blue.png";
- $content['MENU_BULLET_GREEN'] = $content['BASEPATH'] . "images/icons/bullet_ball_glass_green.png";
- $content['MENU_BULLET_RED'] = $content['BASEPATH'] . "images/icons/bullet_ball_glass_red.png";
- $content['MENU_BULLET_YELLOW'] = $content['BASEPATH'] . "images/icons/bullet_ball_glass_yellow.png";
- $content['MENU_BULLET_GREY'] = $content['BASEPATH'] . "images/icons/bullet_ball_glass_grey.png";
-
- $content['MENU_ICON_GOOGLE'] = $content['BASEPATH'] . "images/icons/googleicon.png";
-}
-
-// Lang Helper for Strings with ONE variable
-function GetAndReplaceLangStr( $strlang, $param1 = "", $param2 = "", $param3 = "", $param4 = "", $param5 = "" )
-{
- $strfinal = str_replace ( "%1", $param1, $strlang );
- if ( strlen($param2) > 0 )
- $strfinal = str_replace ( "%1", $param2, $strfinal );
- if ( strlen($param3) > 0 )
- $strfinal = str_replace ( "%1", $param3, $strfinal );
- if ( strlen($param4) > 0 )
- $strfinal = str_replace ( "%1", $param4, $strfinal );
- if ( strlen($param5) > 0 )
- $strfinal = str_replace ( "%1", $param5, $strfinal );
-
- // And return
- return $strfinal;
-}
-
-function InitConfigurationValues()
-{
- global $content, $CFG, $LANG, $gl_root_path;
-
- // If Database is enabled, try to read from database!
- if ( $CFG['UserDBEnabled'] )
- {
- $result = DB_Query("SELECT * FROM " . DB_CONFIG);
- $rows = DB_GetAllRows($result, true, true);
-
- if ( isset($rows ) )
- {
- for($i = 0; $i < count($rows); $i++)
- $content[ $rows[$i]['name'] ] = $rows[$i]['value'];
- }
- // General defaults
- // --- Language Handling
- if ( !isset($content['gen_lang']) ) { $content['gen_lang'] = $CFG['ViewDefaultLanguage'] /*"en"*/; }
-
- // --- PHP Debug Mode
- if ( !isset($content['gen_phpdebug']) ) { $content['gen_phpdebug'] = "no"; }
- // ---
-
- // Database Version Checker!
- if ( $content['database_internalversion'] > $content['database_installedversion'] )
- {
- // Database is out of date, we need to upgrade
- $content['database_forcedatabaseupdate'] = "yes";
- }
- }
- else
- {
- // --- Set Defaults...
- // Language Handling
- if ( isset($_SESSION['CUSTOM_LANG']) && VerifyLanguage($_SESSION['CUSTOM_LANG']) )
- {
- $content['user_lang'] = $_SESSION['CUSTOM_LANG'];
- $LANG = $content['user_lang'];
- }
- else if ( isset($content['gen_lang']) && VerifyLanguage($content['gen_lang']))
- {
- $content['user_lang'] = $content['gen_lang'];
- $LANG = $content['user_lang'];
- }
- else // Failsave!
- {
- $content['user_lang'] = $CFG['ViewDefaultLanguage'] /*"en"*/;
- $LANG = $content['user_lang'];
- $content['gen_lang'] = $content['user_lang'];
- }
- }
-
- // Paging Size handling!
- if ( !isset($_SESSION['PAGESIZE_ID']) )
- {
- // Default is 0!
- $_SESSION['PAGESIZE_ID'] = 0;
- }
-
- // Auto reload handling!
- if ( !isset($_SESSION['AUTORELOAD_ID']) )
- {
- if ( isset($CFG['ViewEnableAutoReloadSeconds']) && $CFG['ViewEnableAutoReloadSeconds'] > 0 )
- $_SESSION['AUTORELOAD_ID'] = 1; // Autoreload ID will be the first item!
- else // Default is 0, which means auto reload disabled
- $_SESSION['AUTORELOAD_ID'] = 0;
- }
-
- // Theme Handling
- if ( !isset($content['web_theme']) ) { $content['web_theme'] = $CFG['ViewDefaultTheme'] /*"default"*/; }
- if ( isset($_SESSION['CUSTOM_THEME']) && VerifyTheme($_SESSION['CUSTOM_THEME']) )
- $content['user_theme'] = $_SESSION['CUSTOM_THEME'];
- else
- $content['user_theme'] = $content['web_theme'];
-
- //Init Theme About Info ^^
- InitThemeAbout($content['user_theme']);
- // ---
-
- // Init main langauge file now!
- IncludeLanguageFile( $gl_root_path . '/lang/' . $LANG . '/main.php' );
-
- // Init other things which are needed
- InitFrontEndVariables();
-}
-
-function SetDebugModeFromString( $facility )
-{
- global $DEBUGMODE;
-
- switch ( $facility )
- {
- case STR_DEBUG_ULTRADEBUG:
- $DEBUGMODE = DEBUG_ULTRADEBUG;
- break;
- case STR_DEBUG_DEBUG:
- $DEBUGMODE = DEBUG_DEBUG;
- break;
- case STR_DEBUG_INFO:
- $DEBUGMODE = DEBUG_INFO;
- break;
- case STR_DEBUG_WARN:
- $DEBUGMODE = DEBUG_WARN;
- break;
- case STR_DEBUG_ERROR:
- $DEBUGMODE = DEBUG_ERROR;
- break;
- }
-}
-
-
-function InitPageRenderStats()
-{
- global $gl_starttime, $querycount;
- $gl_starttime = microtime_float();
- $querycount = 0;
-}
-
-function FinishPageRenderStats( &$mycontent)
-{
- global $gl_starttime, $querycount;
-
- $endtime = microtime_float();
- $mycontent['PAGERENDERTIME'] = number_format($endtime - $gl_starttime, 4, '.', '');
- $mycontent['TOTALQUERIES'] = $querycount;
-}
-
-function microtime_float()
-{
- list($usec, $sec) = explode(" ", microtime());
- return ((float)$usec + (float)$sec);
-}
-
-function SetLineBreakVar()
-{
- // Used for some functions
- global $RUNMODE, $linesep;
-
- if ( $RUNMODE == RUNMODE_COMMANDLINE )
- $linesep = "\r\n";
- else if ( $RUNMODE == RUNMODE_WEBSERVER )
- $linesep = " ";
-}
-
-function CheckUrlOrIP($ip)
-{
- $long = ip2long($ip);
- if ( $long == -1 )
- return false;
- else
- return true;
-}
-
-function DieWithErrorMsg( $szerrmsg )
-{
- global $content;
- print(" ");
- print("Critical Error occured ");
- print("Errordetails: " . $szerrmsg);
- print("
");
-
- exit;
-}
-
-function DieWithFriendlyErrorMsg( $szerrmsg )
-{
- //TODO: Make with template
- print("");
- print("Error occured ");
- print("Errordetails: " . $szerrmsg);
- exit;
-}
-
-/*
-* Helper function to initialize the page title!
-*/
-function InitPageTitle()
-{
- global $content, $CFG, $currentSourceID;
-
- if ( isset($CFG['PrependTitle']) && strlen($CFG['PrependTitle']) > 0 )
- $szReturn = $CFG['PrependTitle'] . " :: ";
- else
- $szReturn = "";
-
- if ( isset($currentSourceID) && isset($content['Sources'][$currentSourceID]['Name']) )
- $szReturn .= "Source '" . $content['Sources'][$currentSourceID]['Name'] . "' :: ";
-
- // Append phpLogCon
- $szReturn .= "phpLogCon";
-
- // return result
- return $szReturn;
-}
-
-
-function GetStringWithHTMLCodes($myStr)
-{
- // Replace all special characters with valid html representations
- return htmlentities($myStr);
-}
-
-function InitTemplateParser()
-{
- global $page, $gl_root_path;
- // -----------------------------------------------
- // Create Template Object and set some variables for the templates
- // -----------------------------------------------
- $page = new Template();
- $page -> set_path ( $gl_root_path . "templates/" );
-}
-
-function VerifyLanguage( $mylang )
-{
- global $gl_root_path;
-
- if ( is_dir( $gl_root_path . 'lang/' . $mylang ) )
- return true;
- else
- return false;
-}
-
-function IncludeLanguageFile( $langfile )
-{
- global $LANG, $LANG_EN;
-
- if ( file_exists( $langfile ) )
- include( $langfile );
- else
- {
- $langfile = str_replace( $LANG, $LANG_EN, $langfile );
- include( $langfile );
- }
-}
-
-function RedirectPage( $newpage )
-{
- header("Location: $newpage");
- exit;
-}
-
-function RedirectResult( $szMsg, $newpage )
-{
- header("Location: result.php?msg=" . urlencode($szMsg) . "&redir=" . urlencode($newpage));
- exit;
-}
-
-/*
-* GetEventTime
-*
-* Helper function to parse and obtain a valid EventTime Array from the input string.
-* Return value: EventTime Array!
-*
-*/
-function GetEventTime($szTimStr)
-{
- // Sample: Mar 10 14:45:44
- if ( preg_match("/(...) ([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})/", $szTimStr, $out ) )
- {
- // RFC 3164 typical timestamp
- $eventtime[EVTIME_TIMESTAMP] = mktime($out[3], $out[4], $out[5], GetMonthFromString($out[1]), $out[2]);
- $eventtime[EVTIME_TIMEZONE] = date_default_timezone_get(); // WTF TODO!
- $eventtime[EVTIME_MICROSECONDS] = 0;
-
-// echo gmdate(DATE_RFC822, $eventtime[EVTIME_TIMESTAMP]) . " ";
-// print_r ( $eventtime );
-// exit;
- }
- // Sample: 2008-04-02T11:12:32+02:00
- else if ( preg_match("/([0-9]{4,4})-([0-9]{1,2})-([0-9]{1,2})T([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\+([0-9]{1,2}):([0-9]{1,2})/", $szTimStr, $out ) )
- {
- // RFC 3164 typical timestamp
- $eventtime[EVTIME_TIMESTAMP] = mktime($out[4], $out[5], $out[6], $out[2], $out[3], $out[1]);
- $eventtime[EVTIME_TIMEZONE] = $out[7];
- $eventtime[EVTIME_MICROSECONDS] = 0;
- }
- // Sample: 2008-04-02T11:12:32.380449+02:00
- else if ( preg_match("/([0-9]{4,4})-([0-9]{1,2})-([0-9]{1,2})T([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\.([0-9]{1,6})\+([0-9]{1,2}):([0-9]{1,2})/", $szTimStr, $out ) )
- {
- // RFC 3164 typical timestamp
- $eventtime[EVTIME_TIMESTAMP] = mktime($out[4], $out[5], $out[6], $out[2], $out[3], $out[1]);
- $eventtime[EVTIME_TIMEZONE] = $out[8];
- $eventtime[EVTIME_MICROSECONDS] = $out[7];
- }
- // Sample: 2008-04-02,15:19:06
- else if ( preg_match("/([0-9]{4,4})-([0-9]{1,2})-([0-9]{1,2}),([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})/", $szTimStr, $out ) )
- {
- // RFC 3164 typical timestamp
- $eventtime[EVTIME_TIMESTAMP] = mktime($out[4], $out[5], $out[6], $out[2], $out[3], $out[1]);
- $eventtime[EVTIME_TIMEZONE] = date_default_timezone_get(); // WTF TODO!
- $eventtime[EVTIME_MICROSECONDS] = 0;
- }
- // Sample: 2008-02-19 12:52:37
- else if ( preg_match("/([0-9]{4,4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})/", $szTimStr, $out ) )
- {
- // RFC 3164 typical timestamp
- $eventtime[EVTIME_TIMESTAMP] = mktime($out[4], $out[5], $out[6], $out[2], $out[3], $out[1]);
- $eventtime[EVTIME_TIMEZONE] = date_default_timezone_get(); // WTF TODO!
- $eventtime[EVTIME_MICROSECONDS] = 0;
- }
- // Sample: 2007-4-18T00:00:00
- else if ( preg_match("/([0-9]{4,4})-([0-9]{1,2})-([0-9]{1,2})T([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})/", $szTimStr, $out ) )
- {
- // RFC 3164 typical timestamp
- $eventtime[EVTIME_TIMESTAMP] = mktime($out[4], $out[5], $out[6], $out[2], $out[3], $out[1]);
- $eventtime[EVTIME_TIMEZONE] = date_default_timezone_get(); // WTF TODO!
- $eventtime[EVTIME_MICROSECONDS] = 0;
- }
- else
- {
- die ("wtf GetEventTime unparsable time - " . $szTimStr );
- }
-
- // return result!
- return $eventtime;
-}
-
-/*
-* GetMonthFromString
-*
-* Simple Helper function to obtain the numeric represantation of the month
-*/
-function GetMonthFromString($szMonth)
-{
- switch($szMonth)
- {
- case "Jan":
- return 1;
- case "Feb":
- return 2;
- case "Mar":
- return 3;
- case "Apr":
- return 4;
- case "May":
- return 5;
- case "Jun":
- return 6;
- case "Jul":
- return 7;
- case "Aug":
- return 8;
- case "Sep":
- return 9;
- case "Oct":
- return 10;
- case "Nov":
- return 11;
- case "Dez":
- return 12;
- }
-}
-
-/*
-* AddContextLinks
-*/
-function AddContextLinks(&$sourceTxt)
-{
- global $szTLDDomains, $CFG;
-
- // Return if not enabled!
- if ( !isset($CFG['EnableIPAddressResolve']) || $CFG['EnableIPAddressResolve'] == 1 )
- {
- // Search for IP's and Add Reverse Lookup first!
- $sourceTxt = preg_replace( '/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/e', "'\\1.\\2.\\3.\\4' . ReverseResolveIP('\\1.\\2.\\3.\\4', ' {', '} ')", $sourceTxt );
- }
-
- // Create if not set!
- if ( !isset($szTLDDomains) )
- CreateTopLevelDomainSearch();
-
- // Create Search Array
- $search = array
- (
- '/\.([\w\d\_]+)\.(' . $szTLDDomains . ')([^a-zA-Z0-9])/x',
-// '|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|',
- '/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/x',
- );
-
- // Create Replace Array
- $replace = array
- (
- '.$1.$2 $3',
- '$1.$2.$3.$4 ',
- );
-
- // Replace and return!
- $sourceTxt = preg_replace( $search, $replace, $sourceTxt );
-
-//echo $outTxt . " " ;
-//return $outTxt;
-}
-
-/*
-* Reserve Resolve IP Address!
-*/
-function ReverseResolveIP( $szIP, $prepend, $append )
-{
- global $gl_starttime, $MaxExecutionTime;
-
- // Substract 5 savety seconds!
- $scriptruntime = intval(microtime_float() - $gl_starttime);
- if ( $scriptruntime > ($MaxExecutionTime-5) )
- {
-echo "WTF $scriptruntime - $MaxExecutionTime";
- return "";
- }
-
- // Abort if these IP's are postet
- if ( strpos("0.0.0.0", $szIP) !== false | strpos("127.", $szIP) !== false | strpos("255.255.255.255", $szIP) !== false )
- return "";
- else
- {
- // Resolve name if needed
- if ( !isset($_SESSION['dns_cache'][$szIP]) )
- $_SESSION['dns_cache'][$szIP] = gethostbyaddr($szIP);
-
- // Abort if IP and RESOLVED name are the same ^^!
- if ( $_SESSION['dns_cache'][$szIP] == $szIP )
- return;
-
- // Create string
- $szReturn = $prepend;
- $szReturn .= $_SESSION['dns_cache'][$szIP];
- $szReturn .= $append;
-
- // return result
- return $szReturn;
- }
-}
-
-/*
-* Helper function to create a top level domain search string ONCE per process!
-*/
-function CreateTopLevelDomainSearch()
-{
- // Current list taken from http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains!
- global $szTLDDomains;
- $szTLDDomains = "aero|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|cTLD|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw";
-}
-
-// --- BEGIN Usermanagement Function ---
-function StartPHPSession()
-{
- global $RUNMODE;
- if ( $RUNMODE == RUNMODE_WEBSERVER )
- {
- // This will start the session
- if (session_id() == "")
- session_start();
-
- if ( !isset($_SESSION['SESSION_STARTED']) )
- $_SESSION['SESSION_STARTED'] = "true";
- }
-}
-
-function CheckForUserLogin( $isloginpage, $isUpgradePage = false )
-{
- global $content;
-
- if ( isset($_SESSION['SESSION_LOGGEDIN']) )
- {
- if ( !$_SESSION['SESSION_LOGGEDIN'] )
- RedirectToUserLogin();
- else
- {
- $content['SESSION_LOGGEDIN'] = "true";
- $content['SESSION_USERNAME'] = $_SESSION['SESSION_USERNAME'];
- }
-
- // New, Check for database Version and may redirect to updatepage!
- if ( isset($content['database_forcedatabaseupdate']) &&
- $content['database_forcedatabaseupdate'] == "yes" &&
- $isUpgradePage == false
- )
- RedirectToDatabaseUpgrade();
- }
- else
- {
- if ( $isloginpage == false )
- RedirectToUserLogin();
- }
-
-}
-
-function CreateUserName( $username, $password, $access_level )
-{
- $md5pass = md5($password);
- $result = DB_Query("SELECT username FROM " . STATS_USERS . " WHERE username = '" . $username . "'");
- $rows = DB_GetAllRows($result, true);
- if ( isset($rows) )
- {
- DieWithFriendlyErrorMsg( "User $username already exists!" );
-
- // User not created!
- return false;
- }
- else
- {
- // Create User
- $result = DB_Query("INSERT INTO " . STATS_USERS . " (username, password, access_level) VALUES ('$username', '$md5pass', $access_level)");
- DB_FreeQuery($result);
-
- // Success
- return true;
- }
-}
-
-function CheckUserLogin( $username, $password )
-{
- global $content, $CFG;
-
- // TODO: SessionTime and AccessLevel check
-
- $md5pass = md5($password);
- $sqlselect = "SELECT access_level FROM " . STATS_USERS . " WHERE username = '" . $username . "' and password = '" . $md5pass . "'";
- $result = DB_Query($sqlselect);
- $rows = DB_GetAllRows($result, true);
- if ( isset($rows) )
- {
- $_SESSION['SESSION_LOGGEDIN'] = true;
- $_SESSION['SESSION_USERNAME'] = $username;
- $_SESSION['SESSION_ACCESSLEVEL'] = $rows[0]['access_level'];
-
- $content['SESSION_LOGGEDIN'] = "true";
- $content['SESSION_USERNAME'] = $username;
-
- // Success !
- return true;
- }
- else
- {
- if ( $CFG['MiscShowDebugMsg'] == 1 )
- DieWithFriendlyErrorMsg( "Debug Error: Could not login user '" . $username . "' Sessionarray " . var_export($_SESSION, true) . " SQL Statement : " . $sqlselect );
-
- // Default return false
- return false;
- }
-}
-
-function DoLogOff()
-{
- global $content;
-
- unset( $_SESSION['SESSION_LOGGEDIN'] );
- unset( $_SESSION['SESSION_USERNAME'] );
- unset( $_SESSION['SESSION_ACCESSLEVEL'] );
-
- // Redir to Index Page
- RedirectPage( "index.php");
-}
-
-function RedirectToUserLogin()
-{
- // TODO Referer
- header("Location: login.php?referer=" . $_SERVER['PHP_SELF']);
- exit;
-}
-
-function RedirectToDatabaseUpgrade()
-{
- // TODO Referer
- header("Location: upgrade.php"); // ?referer=" . $_SERVER['PHP_SELF']);
- exit;
-}
-// --- END Usermanagement Function ---
-
-
+ www.phplogcon.org <- *
+ * ----------------------------------------------------------------- *
+ * Common needed functions *
+ * *
+ * -> *
+ * *
+ * All directives are explained within this file *
+ *
+ * Copyright (C) 2008 Adiscon GmbH.
+ *
+ * This file is part of phpLogCon.
+ *
+ * PhpLogCon is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * PhpLogCon is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with phpLogCon. If not, see .
+ *
+ * A copy of the GPL can be found in the file "COPYING" in this
+ * distribution.
+ *********************************************************************
+*/
+
+// --- Avoid directly accessing this file!
+if ( !defined('IN_PHPLOGCON') )
+{
+ die('Hacking attempt');
+ exit;
+}
+// ---
+
+// --- Basic Includes
+include($gl_root_path . 'include/constants_general.php');
+include($gl_root_path . 'include/constants_logstream.php');
+
+/*
+if ( is_file($gl_root_path . 'config.php') )
+ include($gl_root_path . 'config.php');
+else
+{
+ // Check for installscript!
+ if ( !defined('IN_PHPLOGCON_INSTALL') )
+ CheckForInstallPhp();
+}
+*/
+
+include($gl_root_path . 'classes/class_template.php');
+include($gl_root_path . 'include/functions_themes.php');
+include($gl_root_path . 'include/functions_db.php');
+include($gl_root_path . 'include/functions_config.php');
+// ---
+
+// --- Define Basic vars
+$RUNMODE = RUNMODE_WEBSERVER;
+$DEBUGMODE = DEBUG_INFO;
+
+// --- Disable ARGV setting @webserver!
+ini_set( "register_argc_argv", "Off" );
+// ---
+
+// Default language
+$LANG_EN = "en"; // Used for fallback
+$LANG = "en"; // Default language
+
+// Default Template vars
+$content['BUILDNUMBER'] = "2.3.4";
+$content['TITLE'] = "phpLogCon :: Release " . $content['BUILDNUMBER']; // Default page title
+$content['BASEPATH'] = $gl_root_path;
+$content['EXTRA_METATAGS'] = "";
+$content['EXTRA_JAVASCRIPT'] = "";
+$content['EXTRA_STYLESHEET'] = "";
+// ---
+
+// --- Check PHP Version! If lower the 5, phplogcon will not work proberly!
+$myPhpVer = phpversion();
+$myPhpVerArray = explode('.', $myPhpVer);
+if ( $myPhpVerArray[0] < 5 )
+ DieWithErrorMsg( 'Error, the PHP Version on this Server does not meet the installation requirements. PHP5 or higher is needed. Current installed Version is: ' . $myPhpVer . ' ');
+// ---
+
+function InitBasicPhpLogCon()
+{
+ // Needed to make global
+ global $CFG, $gl_root_path, $content;
+
+ // Check RunMode first!
+ CheckAndSetRunMode();
+
+ // Set the default line sep
+ SetLineBreakVar();
+
+ // Start the PHP Session
+ StartPHPSession();
+}
+
+function InitPhpLogConConfigFile($bHandleMissing = true)
+{
+ // Needed to make global
+ global $CFG, $gl_root_path, $content;
+
+ if ( file_exists($gl_root_path . 'config.php') && GetFileLength($gl_root_path . 'config.php') > 0 )
+ {
+ // Include the main config
+ include_once($gl_root_path . 'config.php');
+
+ // Easier DB Access
+ define('DB_CONFIG', $CFG['UserDBPref'] . "config");
+
+ // If DEBUG Mode is enabled, we prepend the UID field into the col list!
+ if ( $CFG['MiscShowDebugMsg'] == 1 )
+ array_unshift($CFG['Columns'], SYSLOG_UID);
+
+ // Now Copy all entries into content variable
+ foreach ($CFG as $key => $value )
+ $content[$key] = $value;
+
+ // For MiscShowPageRenderStats
+ if ( $CFG['MiscShowPageRenderStats'] == 1 )
+ {
+ $content['ShowPageRenderStats'] = "true";
+ InitPageRenderStats();
+ }
+
+ // return result
+ return true;
+ }
+ else
+ {
+ // if handled ourselfe, we die in CheckForInstallPhp.
+ if ( $bHandleMissing == true )
+ {
+ // Check for installscript!
+ CheckForInstallPhp();
+ }
+ else
+ return false;
+ }
+}
+
+function CheckForInstallPhp()
+{
+ // Check for installscript!
+ if ( file_exists($content['BASEPATH'] . "install.php") )
+ $strinstallmsg = ' '
+ . 'Click here to Install PhpLogCon! '
+// . 'See the Installation Guides for more Details! '
+// . 'English Installation Guide | '
+// . 'German Installation Guide '
+// . 'Also take a look to the Readme for some basics around PhpLogCon! '
+ . ' ';
+ else
+ $strinstallmsg = "";
+ DieWithErrorMsg( 'Error, main configuration file is missing!' . $strinstallmsg );
+}
+
+function GetFileLength($szFileName)
+{
+ if ( is_file($szFileName) )
+ return filesize($szFileName);
+ else
+ return 0;
+}
+
+function InitPhpLogCon()
+{
+ // Needed to make global
+ global $CFG, $gl_root_path, $content;
+
+ // Init Basics which do not need a database
+ InitBasicPhpLogCon();
+
+ // Will init the config file!
+ InitPhpLogConConfigFile();
+
+ // Moved here, because we do not need if GZIP needs to be enabled before the config is loaded!
+ InitRuntimeInformations();
+
+ // Establish DB Connection
+ if ( $CFG['UserDBEnabled'] )
+ DB_Connect();
+
+ // Now load the Page configuration values
+ InitConfigurationValues();
+
+ // Now Create Themes List because we haven't the config before!
+ CreateThemesList();
+
+ // Create Language List
+ CreateLanguageList();
+
+ // Init Predefined Searches List
+ CreatePredefinedSearches();
+
+ // Init predefined paging sizes
+ CreatePagesizesList();
+
+ // Init predefined reload times
+ CreateReloadTimesList();
+
+ // --- Enable PHP Debug Mode
+ InitPhpDebugMode();
+ // ---
+}
+
+function CreateLogLineTypesList( $selectedType )
+{
+ global $content;
+
+ // syslog
+ $content['LOGLINETYPES']["syslog"]['type'] = "syslog";
+ $content['LOGLINETYPES']["syslog"]['DisplayName'] = "Syslog / RSyslog";
+ if ( $selectedType == $content['LOGLINETYPES']["syslog"]['type'] ) { $content['LOGLINETYPES']["syslog"]['selected'] = "selected"; } else { $content['LOGLINETYPES']["syslog"]['selected'] = ""; }
+
+ // Adiscon Winsyslog
+ $content['LOGLINETYPES']["winsyslog"]['type'] = "winsyslog";
+ $content['LOGLINETYPES']["winsyslog"]['DisplayName'] = "Adiscon WinSyslog";
+ if ( $selectedType == $content['LOGLINETYPES']["winsyslog"]['type'] ) { $content['LOGLINETYPES']["winsyslog"]['selected'] = "selected"; } else { $content['LOGLINETYPES']["winsyslog"]['selected'] = ""; }
+}
+
+function CreateSourceTypesList( $selectedSource )
+{
+ global $content;
+
+ // SOURCE_DISK
+ $content['SOURCETYPES'][SOURCE_DISK]['type'] = SOURCE_DISK;
+ $content['SOURCETYPES'][SOURCE_DISK]['DisplayName'] = $content['LN_GEN_SOURCE_DISK'];
+ if ( $selectedSource == $content['SOURCETYPES'][SOURCE_DISK]['type'] ) { $content['SOURCETYPES'][SOURCE_DISK]['selected'] = "selected"; } else { $content['SOURCETYPES'][SOURCE_DISK]['selected'] = ""; }
+
+ // SOURCE_DB ( MYSQL NATIVE )
+ $content['SOURCETYPES'][SOURCE_DB]['type'] = SOURCE_DB;
+ $content['SOURCETYPES'][SOURCE_DB]['DisplayName'] = $content['LN_GEN_SOURCE_DB'];
+ if ( $selectedSource == $content['SOURCETYPES'][SOURCE_DB]['type'] ) { $content['SOURCETYPES'][SOURCE_DB]['selected'] = "selected"; } else { $content['SOURCETYPES'][SOURCE_DB]['selected'] = ""; }
+
+ // SOURCE_PDO ( PDO DB Wrapper)
+ $content['SOURCETYPES'][SOURCE_PDO]['type'] = SOURCE_PDO;
+ $content['SOURCETYPES'][SOURCE_PDO]['DisplayName'] = $content['LN_GEN_SOURCE_PDO'];
+ if ( $selectedSource == $content['SOURCETYPES'][SOURCE_PDO]['type'] ) { $content['SOURCETYPES'][SOURCE_PDO]['selected'] = "selected"; } else { $content['SOURCETYPES'][SOURCE_PDO]['selected'] = ""; }
+}
+
+function CreateDBTypesList( $selectedDBType )
+{
+ global $content;
+
+ // DB_MYSQL
+ $content['DBTYPES'][DB_MYSQL]['type'] = DB_MYSQL;
+ $content['DBTYPES'][DB_MYSQL]['typeastext'] = "DB_MYSQL";
+ $content['DBTYPES'][DB_MYSQL]['DisplayName'] = $content['LN_GEN_DB_MYSQL'];
+ if ( $selectedDBType == $content['DBTYPES'][DB_MYSQL]['type'] ) { $content['DBTYPES'][DB_MYSQL]['selected'] = "selected"; } else { $content['DBTYPES'][DB_MYSQL]['selected'] = ""; }
+
+ // DB_MSSQL
+ $content['DBTYPES'][DB_MSSQL]['type'] = DB_MSSQL;
+ $content['DBTYPES'][DB_MSSQL]['typeastext'] = "DB_MSSQL";
+ $content['DBTYPES'][DB_MSSQL]['DisplayName'] = $content['LN_GEN_DB_MSSQL'];
+ if ( $selectedDBType == $content['DBTYPES'][DB_MSSQL]['type'] ) { $content['DBTYPES'][DB_MSSQL]['selected'] = "selected"; } else { $content['DBTYPES'][DB_MSSQL]['selected'] = ""; }
+
+ // DB_ODBC
+ $content['DBTYPES'][DB_ODBC]['type'] = DB_ODBC;
+ $content['DBTYPES'][DB_ODBC]['typeastext'] = "DB_ODBC";
+ $content['DBTYPES'][DB_ODBC]['DisplayName'] = $content['LN_GEN_DB_ODBC'];
+ if ( $selectedDBType == $content['DBTYPES'][DB_ODBC]['type'] ) { $content['DBTYPES'][DB_ODBC]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_ODBC]['selected'] = ""; }
+
+ // DB_PGSQL
+ $content['DBTYPES'][DB_PGSQL]['type'] = DB_PGSQL;
+ $content['DBTYPES'][DB_PGSQL]['typeastext'] = "DB_PGSQL";
+ $content['DBTYPES'][DB_PGSQL]['DisplayName'] = $content['LN_GEN_DB_PGSQL'];
+ if ( $selectedDBType == $content['DBTYPES'][DB_PGSQL]['type'] ) { $content['DBTYPES'][DB_PGSQL]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_PGSQL]['selected'] = ""; }
+
+ // DB_OCI
+ $content['DBTYPES'][DB_OCI]['type'] = DB_OCI;
+ $content['DBTYPES'][DB_OCI]['typeastext'] = "DB_OCI";
+ $content['DBTYPES'][DB_OCI]['DisplayName'] = $content['LN_GEN_DB_OCI'];
+ if ( $selectedDBType == $content['DBTYPES'][DB_OCI]['type'] ) { $content['DBTYPES'][DB_OCI]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_OCI]['selected'] = ""; }
+
+ // DB_DB2
+ $content['DBTYPES'][DB_DB2]['type'] = DB_DB2;
+ $content['DBTYPES'][DB_DB2]['typeastext'] = "DB_DB2";
+ $content['DBTYPES'][DB_DB2]['DisplayName'] = $content['LN_GEN_DB_DB2'];
+ if ( $selectedDBType == $content['DBTYPES'][DB_DB2]['type'] ) { $content['DBTYPES'][DB_DB2]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_DB2]['selected'] = ""; }
+
+ // DB_FIREBIRD
+ $content['DBTYPES'][DB_FIREBIRD]['type'] = DB_FIREBIRD;
+ $content['DBTYPES'][DB_FIREBIRD]['typeastext'] = "DB_FIREBIRD";
+ $content['DBTYPES'][DB_FIREBIRD]['DisplayName'] = $content['LN_GEN_DB_FIREBIRD'];
+ if ( $selectedDBType == $content['DBTYPES'][DB_FIREBIRD]['type'] ) { $content['DBTYPES'][DB_FIREBIRD]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_FIREBIRD]['selected'] = ""; }
+
+ // DB_INFORMIX
+ $content['DBTYPES'][DB_INFORMIX]['type'] = DB_INFORMIX;
+ $content['DBTYPES'][DB_INFORMIX]['typeastext'] = "DB_INFORMIX";
+ $content['DBTYPES'][DB_INFORMIX]['DisplayName'] = $content['LN_GEN_DB_INFORMIX'];
+ if ( $selectedDBType == $content['DBTYPES'][DB_INFORMIX]['type'] ) { $content['DBTYPES'][DB_INFORMIX]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_INFORMIX]['selected'] = ""; }
+
+ // DB_SQLITE
+ $content['DBTYPES'][DB_SQLITE]['type'] = DB_SQLITE;
+ $content['DBTYPES'][DB_SQLITE]['typeastext'] = "DB_SQLITE";
+ $content['DBTYPES'][DB_SQLITE]['DisplayName'] = $content['LN_GEN_DB_SQLITE'];
+ if ( $selectedDBType == $content['DBTYPES'][DB_SQLITE]['type'] ) { $content['DBTYPES'][DB_SQLITE]['selected'] = "selected"; } else { $content['DB_ODBC'][DB_SQLITE]['selected'] = ""; }
+}
+
+function CreatePagesizesList()
+{
+ global $CFG, $content;
+
+ $iCounter = 0;
+ $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => $content['LN_GEN_PRECONFIGURED'] . " (" . $CFG['ViewEntriesPerPage'] . ")", "Value" => $CFG['ViewEntriesPerPage'] ); $iCounter++;
+ $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 25 " . $content['LN_GEN_RECORDSPERPAGE'], "Value" => 25 ); $iCounter++;
+ $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 50 " . $content['LN_GEN_RECORDSPERPAGE'], "Value" => 50 ); $iCounter++;
+ $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 75 " . $content['LN_GEN_RECORDSPERPAGE'], "Value" => 75 ); $iCounter++;
+ $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 100 " . $content['LN_GEN_RECORDSPERPAGE'], "Value" => 100 ); $iCounter++;
+ $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 250 " . $content['LN_GEN_RECORDSPERPAGE'], "Value" => 250 ); $iCounter++;
+ $content['pagesizes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 500 " . $content['LN_GEN_RECORDSPERPAGE'], "Value" => 500 ); $iCounter++;
+
+ // Set default selected pagesize
+ $content['pagesizes'][ $_SESSION['PAGESIZE_ID'] ]["Selected"] = "selected";
+
+ // The content variable will now contain the user selected oaging size
+ $content["ViewEntriesPerPage"] = $content['pagesizes'][ $_SESSION['PAGESIZE_ID'] ]["Value"];
+}
+
+function CreateReloadTimesList()
+{
+ global $CFG, $content;
+
+// $CFG['ViewEnableAutoReloadSeconds']
+ $iCounter = 0;
+ $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => $content['LN_AUTORELOAD_DISABLED'], "Value" => 0 ); $iCounter++;
+ if ( isset($CFG['ViewEnableAutoReloadSeconds']) && $CFG['ViewEnableAutoReloadSeconds'] > 0 )
+ {
+ $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => $content['LN_AUTORELOAD_PRECONFIGURED'] . " (" . $CFG['ViewEnableAutoReloadSeconds'] . " " . $content['LN_AUTORELOAD_SECONDS'] . ") ", "Value" => $CFG['ViewEnableAutoReloadSeconds'] ); $iCounter++;
+ }
+ $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 5 " . $content['LN_AUTORELOAD_SECONDS'], "Value" => 5 ); $iCounter++;
+ $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 10 " . $content['LN_AUTORELOAD_SECONDS'], "Value" => 10 ); $iCounter++;
+ $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 15 " . $content['LN_AUTORELOAD_SECONDS'], "Value" => 15 ); $iCounter++;
+ $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 30 " . $content['LN_AUTORELOAD_SECONDS'], "Value" => 30 ); $iCounter++;
+ $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 60 " . $content['LN_AUTORELOAD_SECONDS'], "Value" => 60 ); $iCounter++;
+ $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 5 " . $content['LN_AUTORELOAD_MINUTES'], "Value" => 300 ); $iCounter++;
+ $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 10 " . $content['LN_AUTORELOAD_MINUTES'], "Value" => 600 ); $iCounter++;
+ $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 15 " . $content['LN_AUTORELOAD_MINUTES'], "Value" => 900 ); $iCounter++;
+ $content['reloadtimes'][$iCounter] = array( "ID" => $iCounter, "Selected" => "", "DisplayName" => " 30 " . $content['LN_AUTORELOAD_MINUTES'], "Value" => 1800 ); $iCounter++;
+
+ // Set default selected autoreloadid
+ $content['reloadtimes'][ $_SESSION['AUTORELOAD_ID'] ]["Selected"] = "selected";
+
+ // The content variable will now contain the user selected oaging size
+ $content["ViewEnableAutoReloadSeconds"] = $content['reloadtimes'][ $_SESSION['AUTORELOAD_ID'] ]["Value"];
+
+}
+
+function CreatePredefinedSearches()
+{
+ global $CFG, $content;
+ if ( isset($CFG['Search']) )
+ {
+ // Enable predefined searches
+ $content['EnablePredefinedSearches'] = true;
+
+ // Loop through all predefined searches!
+ foreach ($CFG['Search'] as $mykey => $mySearch)
+ {
+ // Copy configured searches into content array!
+ $content['Search'][$mykey]["ID"] = $mykey;
+ $content['Search'][$mykey]["Selected"] = false;
+
+ // --- Set CSS Class
+ if ( $mykey % 2 == 0 )
+ $content['Search'][$mykey]['cssclass'] = "line1";
+ else
+ $content['Search'][$mykey]['cssclass'] = "line2";
+ // ---
+
+ }
+ }
+ else // Disable predefined searches
+ $content['EnablePredefinedSearches'] = false;
+}
+
+function InitPhpDebugMode()
+{
+ global $content, $CFG;
+
+ // --- Set Global DEBUG Level!
+ if ( $CFG['MiscShowDebugMsg'] == 1 )
+ ini_set( "error_reporting", E_ALL ); // ALL PHP MESSAGES!
+// else
+// ini_set( "error_reporting", E_ERROR ); // ONLY PHP ERROR'S!
+ // ---
+}
+
+function CheckAndSetRunMode()
+{
+ global $RUNMODE, $MaxExecutionTime;
+ // Set to command line mode if argv is set!
+ if ( !isset($_SERVER["GATEWAY_INTERFACE"]) )
+ $RUNMODE = RUNMODE_COMMANDLINE;
+
+ // Obtain max_execution_time
+ $MaxExecutionTime = ini_get("max_execution_time");
+}
+
+function InitRuntimeInformations()
+{
+ global $content, $CFG;
+
+ // TODO| maybe not needed!
+
+ // Enable GZIP Compression if enabled!
+ if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false && (isset($CFG['MiscEnableGzipCompression']) && $CFG['MiscEnableGzipCompression'] == 1) )
+ {
+ // This starts gzip compression!
+ ob_start("ob_gzhandler");
+ $content['GzipCompressionEnmabled'] = "yes";
+ }
+ else
+ $content['GzipCompressionEnmabled'] = "no";
+}
+
+function CreateDebugModes()
+{
+ global $content;
+
+ $content['DBGMODES'][0]['DisplayName'] = STR_DEBUG_ULTRADEBUG;
+ if ( $content['parser_debugmode'] == $content['DBGMODES'][0]['DisplayName'] ) { $content['DBGMODES'][0]['selected'] = "selected"; } else { $content['DBGMODES'][0]['selected'] = ""; }
+ $content['DBGMODES'][1]['DisplayName'] = STR_DEBUG_DEBUG;
+ if ( $content['parser_debugmode'] == $content['DBGMODES'][1]['DisplayName'] ) { $content['DBGMODES'][1]['selected'] = "selected"; } else { $content['DBGMODES'][1]['selected'] = ""; }
+ $content['DBGMODES'][2]['DisplayName'] = STR_DEBUG_INFO;
+ if ( $content['parser_debugmode'] == $content['DBGMODES'][2]['DisplayName'] ) { $content['DBGMODES'][2]['selected'] = "selected"; } else { $content['DBGMODES'][2]['selected'] = ""; }
+ $content['DBGMODES'][3]['DisplayName'] = STR_DEBUG_WARN;
+ if ( $content['parser_debugmode'] == $content['DBGMODES'][3]['DisplayName'] ) { $content['DBGMODES'][3]['selected'] = "selected"; } else { $content['DBGMODES'][3]['selected'] = ""; }
+ $content['DBGMODES'][4]['DisplayName'] = STR_DEBUG_ERROR;
+ if ( $content['parser_debugmode'] == $content['DBGMODES'][4]['DisplayName'] ) { $content['DBGMODES'][4]['selected'] = "selected"; } else { $content['DBGMODES'][4]['selected'] = ""; }
+}
+
+function InitFrontEndVariables()
+{
+ global $content;
+
+ $content['MENU_FOLDER_OPEN'] = $content['BASEPATH'] . "images/icons/folder_closed.png";
+ $content['MENU_FOLDER_CLOSED'] = $content['BASEPATH'] . "images/icons/folder.png";
+ $content['MENU_HOMEPAGE'] = $content['BASEPATH'] . "images/icons/home.png";
+ $content['MENU_LINK'] = $content['BASEPATH'] . "images/icons/link.png";
+ $content['MENU_LINK_VIEW'] = $content['BASEPATH'] . "images/icons/link_view.png";
+ $content['MENU_VIEW'] = $content['BASEPATH'] . "images/icons/view.png";
+ $content['MENU_PREFERENCES'] = $content['BASEPATH'] . "images/icons/preferences.png";
+ $content['MENU_ADMINENTRY'] = $content['BASEPATH'] . "images/icons/star_blue.png";
+ $content['MENU_ADMINLOGOFF'] = $content['BASEPATH'] . "images/icons/exit.png";
+ $content['MENU_ADMINUSERS'] = $content['BASEPATH'] . "images/icons/businessmen.png";
+ $content['MENU_SEARCH'] = $content['BASEPATH'] . "images/icons/view.png";
+ $content['MENU_SELECTION_DISABLED'] = $content['BASEPATH'] . "images/icons/selection.png";
+ $content['MENU_SELECTION_ENABLED'] = $content['BASEPATH'] . "images/icons/selection_delete.png";
+ $content['MENU_TEXT_FIND'] = $content['BASEPATH'] . "images/icons/text_find.png";
+ $content['MENU_NETWORK'] = $content['BASEPATH'] . "images/icons/earth_network.png";
+
+
+ $content['MENU_PAGER_BEGIN'] = $content['BASEPATH'] . "images/icons/media_beginning.png";
+ $content['MENU_PAGER_PREVIOUS'] = $content['BASEPATH'] . "images/icons/media_rewind.png";
+ $content['MENU_PAGER_NEXT'] = $content['BASEPATH'] . "images/icons/media_fast_forward.png";
+ $content['MENU_PAGER_END'] = $content['BASEPATH'] . "images/icons/media_end.png";
+ $content['MENU_NAV_LEFT'] = $content['BASEPATH'] . "images/icons/navigate_left.png";
+ $content['MENU_NAV_RIGHT'] = $content['BASEPATH'] . "images/icons/navigate_right.png";
+ $content['MENU_NAV_CLOSE'] = $content['BASEPATH'] . "images/icons/navigate_close.png";
+ $content['MENU_NAV_OPEN'] = $content['BASEPATH'] . "images/icons/navigate_open.png";
+ $content['MENU_PAGER_BEGIN_GREY'] = $content['BASEPATH'] . "images/icons/grey/media_beginning.png";
+ $content['MENU_PAGER_PREVIOUS_GREY'] = $content['BASEPATH'] . "images/icons/grey/media_rewind.png";
+ $content['MENU_PAGER_NEXT_GREY'] = $content['BASEPATH'] . "images/icons/grey/media_fast_forward.png";
+ $content['MENU_PAGER_END_GREY'] = $content['BASEPATH'] . "images/icons/grey/media_end.png";
+
+ $content['MENU_BULLET_BLUE'] = $content['BASEPATH'] . "images/icons/bullet_ball_glass_blue.png";
+ $content['MENU_BULLET_GREEN'] = $content['BASEPATH'] . "images/icons/bullet_ball_glass_green.png";
+ $content['MENU_BULLET_RED'] = $content['BASEPATH'] . "images/icons/bullet_ball_glass_red.png";
+ $content['MENU_BULLET_YELLOW'] = $content['BASEPATH'] . "images/icons/bullet_ball_glass_yellow.png";
+ $content['MENU_BULLET_GREY'] = $content['BASEPATH'] . "images/icons/bullet_ball_glass_grey.png";
+
+ $content['MENU_ICON_GOOGLE'] = $content['BASEPATH'] . "images/icons/googleicon.png";
+}
+
+// Lang Helper for Strings with ONE variable
+function GetAndReplaceLangStr( $strlang, $param1 = "", $param2 = "", $param3 = "", $param4 = "", $param5 = "" )
+{
+ $strfinal = str_replace ( "%1", $param1, $strlang );
+ if ( strlen($param2) > 0 )
+ $strfinal = str_replace ( "%1", $param2, $strfinal );
+ if ( strlen($param3) > 0 )
+ $strfinal = str_replace ( "%1", $param3, $strfinal );
+ if ( strlen($param4) > 0 )
+ $strfinal = str_replace ( "%1", $param4, $strfinal );
+ if ( strlen($param5) > 0 )
+ $strfinal = str_replace ( "%1", $param5, $strfinal );
+
+ // And return
+ return $strfinal;
+}
+
+function InitConfigurationValues()
+{
+ global $content, $CFG, $LANG, $gl_root_path;
+
+ // If Database is enabled, try to read from database!
+ if ( $CFG['UserDBEnabled'] )
+ {
+ $result = DB_Query("SELECT * FROM " . DB_CONFIG);
+ $rows = DB_GetAllRows($result, true, true);
+
+ if ( isset($rows ) )
+ {
+ for($i = 0; $i < count($rows); $i++)
+ $content[ $rows[$i]['name'] ] = $rows[$i]['value'];
+ }
+ // General defaults
+ // --- Language Handling
+ if ( !isset($content['gen_lang']) ) { $content['gen_lang'] = $CFG['ViewDefaultLanguage'] /*"en"*/; }
+
+ // --- PHP Debug Mode
+ if ( !isset($content['gen_phpdebug']) ) { $content['gen_phpdebug'] = "no"; }
+ // ---
+
+ // Database Version Checker!
+ if ( $content['database_internalversion'] > $content['database_installedversion'] )
+ {
+ // Database is out of date, we need to upgrade
+ $content['database_forcedatabaseupdate'] = "yes";
+ }
+ }
+ else
+ {
+ // --- Set Defaults...
+ // Language Handling
+ if ( isset($_SESSION['CUSTOM_LANG']) && VerifyLanguage($_SESSION['CUSTOM_LANG']) )
+ {
+ $content['user_lang'] = $_SESSION['CUSTOM_LANG'];
+ $LANG = $content['user_lang'];
+ }
+ else if ( isset($content['gen_lang']) && VerifyLanguage($content['gen_lang']))
+ {
+ $content['user_lang'] = $content['gen_lang'];
+ $LANG = $content['user_lang'];
+ }
+ else // Failsave!
+ {
+ $content['user_lang'] = $CFG['ViewDefaultLanguage'] /*"en"*/;
+ $LANG = $content['user_lang'];
+ $content['gen_lang'] = $content['user_lang'];
+ }
+ }
+
+ // Paging Size handling!
+ if ( !isset($_SESSION['PAGESIZE_ID']) )
+ {
+ // Default is 0!
+ $_SESSION['PAGESIZE_ID'] = 0;
+ }
+
+ // Auto reload handling!
+ if ( !isset($_SESSION['AUTORELOAD_ID']) )
+ {
+ if ( isset($CFG['ViewEnableAutoReloadSeconds']) && $CFG['ViewEnableAutoReloadSeconds'] > 0 )
+ $_SESSION['AUTORELOAD_ID'] = 1; // Autoreload ID will be the first item!
+ else // Default is 0, which means auto reload disabled
+ $_SESSION['AUTORELOAD_ID'] = 0;
+ }
+
+ // Theme Handling
+ if ( !isset($content['web_theme']) ) { $content['web_theme'] = $CFG['ViewDefaultTheme'] /*"default"*/; }
+ if ( isset($_SESSION['CUSTOM_THEME']) && VerifyTheme($_SESSION['CUSTOM_THEME']) )
+ $content['user_theme'] = $_SESSION['CUSTOM_THEME'];
+ else
+ $content['user_theme'] = $content['web_theme'];
+
+ //Init Theme About Info ^^
+ InitThemeAbout($content['user_theme']);
+ // ---
+
+ // Init main langauge file now!
+ IncludeLanguageFile( $gl_root_path . '/lang/' . $LANG . '/main.php' );
+
+ // Init other things which are needed
+ InitFrontEndVariables();
+}
+
+function SetDebugModeFromString( $facility )
+{
+ global $DEBUGMODE;
+
+ switch ( $facility )
+ {
+ case STR_DEBUG_ULTRADEBUG:
+ $DEBUGMODE = DEBUG_ULTRADEBUG;
+ break;
+ case STR_DEBUG_DEBUG:
+ $DEBUGMODE = DEBUG_DEBUG;
+ break;
+ case STR_DEBUG_INFO:
+ $DEBUGMODE = DEBUG_INFO;
+ break;
+ case STR_DEBUG_WARN:
+ $DEBUGMODE = DEBUG_WARN;
+ break;
+ case STR_DEBUG_ERROR:
+ $DEBUGMODE = DEBUG_ERROR;
+ break;
+ }
+}
+
+
+function InitPageRenderStats()
+{
+ global $gl_starttime, $querycount;
+ $gl_starttime = microtime_float();
+ $querycount = 0;
+}
+
+function FinishPageRenderStats( &$mycontent)
+{
+ global $gl_starttime, $querycount;
+
+ $endtime = microtime_float();
+ $mycontent['PAGERENDERTIME'] = number_format($endtime - $gl_starttime, 4, '.', '');
+ $mycontent['TOTALQUERIES'] = $querycount;
+}
+
+function microtime_float()
+{
+ list($usec, $sec) = explode(" ", microtime());
+ return ((float)$usec + (float)$sec);
+}
+
+function SetLineBreakVar()
+{
+ // Used for some functions
+ global $RUNMODE, $linesep;
+
+ if ( $RUNMODE == RUNMODE_COMMANDLINE )
+ $linesep = "\r\n";
+ else if ( $RUNMODE == RUNMODE_WEBSERVER )
+ $linesep = " ";
+}
+
+function CheckUrlOrIP($ip)
+{
+ $long = ip2long($ip);
+ if ( $long == -1 )
+ return false;
+ else
+ return true;
+}
+
+function DieWithErrorMsg( $szerrmsg )
+{
+ global $content;
+ print(" ");
+ print("Critical Error occured ");
+ print("Errordetails: " . $szerrmsg);
+ print("
");
+
+ exit;
+}
+
+function DieWithFriendlyErrorMsg( $szerrmsg )
+{
+ //TODO: Make with template
+ print("");
+ print("Error occured ");
+ print("Errordetails: " . $szerrmsg);
+ exit;
+}
+
+/*
+* Helper function to initialize the page title!
+*/
+function InitPageTitle()
+{
+ global $content, $CFG, $currentSourceID;
+
+ if ( isset($CFG['PrependTitle']) && strlen($CFG['PrependTitle']) > 0 )
+ $szReturn = $CFG['PrependTitle'] . " :: ";
+ else
+ $szReturn = "";
+
+ if ( isset($currentSourceID) && isset($content['Sources'][$currentSourceID]['Name']) )
+ $szReturn .= "Source '" . $content['Sources'][$currentSourceID]['Name'] . "' :: ";
+
+ // Append phpLogCon
+ $szReturn .= "phpLogCon";
+
+ // return result
+ return $szReturn;
+}
+
+
+function GetStringWithHTMLCodes($myStr)
+{
+ // Replace all special characters with valid html representations
+ return htmlentities($myStr);
+}
+
+function InitTemplateParser()
+{
+ global $page, $gl_root_path;
+ // -----------------------------------------------
+ // Create Template Object and set some variables for the templates
+ // -----------------------------------------------
+ $page = new Template();
+ $page -> set_path ( $gl_root_path . "templates/" );
+}
+
+function VerifyLanguage( $mylang )
+{
+ global $gl_root_path;
+
+ if ( is_dir( $gl_root_path . 'lang/' . $mylang ) )
+ return true;
+ else
+ return false;
+}
+
+function IncludeLanguageFile( $langfile )
+{
+ global $LANG, $LANG_EN;
+
+ if ( file_exists( $langfile ) )
+ include( $langfile );
+ else
+ {
+ $langfile = str_replace( $LANG, $LANG_EN, $langfile );
+ include( $langfile );
+ }
+}
+
+function RedirectPage( $newpage )
+{
+ header("Location: $newpage");
+ exit;
+}
+
+function RedirectResult( $szMsg, $newpage )
+{
+ header("Location: result.php?msg=" . urlencode($szMsg) . "&redir=" . urlencode($newpage));
+ exit;
+}
+
+/*
+* GetEventTime
+*
+* Helper function to parse and obtain a valid EventTime Array from the input string.
+* Return value: EventTime Array!
+*
+*/
+function GetEventTime($szTimStr)
+{
+ // Sample: Mar 10 14:45:44
+ if ( preg_match("/(...) ([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})/", $szTimStr, $out ) )
+ {
+ // RFC 3164 typical timestamp
+ $eventtime[EVTIME_TIMESTAMP] = mktime($out[3], $out[4], $out[5], GetMonthFromString($out[1]), $out[2]);
+ $eventtime[EVTIME_TIMEZONE] = date_default_timezone_get(); // WTF TODO!
+ $eventtime[EVTIME_MICROSECONDS] = 0;
+
+// echo gmdate(DATE_RFC822, $eventtime[EVTIME_TIMESTAMP]) . " ";
+// print_r ( $eventtime );
+// exit;
+ }
+ // Sample: 2008-04-02T11:12:32+02:00
+ else if ( preg_match("/([0-9]{4,4})-([0-9]{1,2})-([0-9]{1,2})T([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\+([0-9]{1,2}):([0-9]{1,2})/", $szTimStr, $out ) )
+ {
+ // RFC 3164 typical timestamp
+ $eventtime[EVTIME_TIMESTAMP] = mktime($out[4], $out[5], $out[6], $out[2], $out[3], $out[1]);
+ $eventtime[EVTIME_TIMEZONE] = $out[7];
+ $eventtime[EVTIME_MICROSECONDS] = 0;
+ }
+ // Sample: 2008-04-02T11:12:32.380449+02:00
+ else if ( preg_match("/([0-9]{4,4})-([0-9]{1,2})-([0-9]{1,2})T([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\.([0-9]{1,6})\+([0-9]{1,2}):([0-9]{1,2})/", $szTimStr, $out ) )
+ {
+ // RFC 3164 typical timestamp
+ $eventtime[EVTIME_TIMESTAMP] = mktime($out[4], $out[5], $out[6], $out[2], $out[3], $out[1]);
+ $eventtime[EVTIME_TIMEZONE] = $out[8];
+ $eventtime[EVTIME_MICROSECONDS] = $out[7];
+ }
+ // Sample: 2008-04-02,15:19:06
+ else if ( preg_match("/([0-9]{4,4})-([0-9]{1,2})-([0-9]{1,2}),([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})/", $szTimStr, $out ) )
+ {
+ // RFC 3164 typical timestamp
+ $eventtime[EVTIME_TIMESTAMP] = mktime($out[4], $out[5], $out[6], $out[2], $out[3], $out[1]);
+ $eventtime[EVTIME_TIMEZONE] = date_default_timezone_get(); // WTF TODO!
+ $eventtime[EVTIME_MICROSECONDS] = 0;
+ }
+ // Sample: 2008-02-19 12:52:37
+ else if ( preg_match("/([0-9]{4,4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})/", $szTimStr, $out ) )
+ {
+ // RFC 3164 typical timestamp
+ $eventtime[EVTIME_TIMESTAMP] = mktime($out[4], $out[5], $out[6], $out[2], $out[3], $out[1]);
+ $eventtime[EVTIME_TIMEZONE] = date_default_timezone_get(); // WTF TODO!
+ $eventtime[EVTIME_MICROSECONDS] = 0;
+ }
+ // Sample: 2007-4-18T00:00:00
+ else if ( preg_match("/([0-9]{4,4})-([0-9]{1,2})-([0-9]{1,2})T([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})/", $szTimStr, $out ) )
+ {
+ // RFC 3164 typical timestamp
+ $eventtime[EVTIME_TIMESTAMP] = mktime($out[4], $out[5], $out[6], $out[2], $out[3], $out[1]);
+ $eventtime[EVTIME_TIMEZONE] = date_default_timezone_get(); // WTF TODO!
+ $eventtime[EVTIME_MICROSECONDS] = 0;
+ }
+ else
+ {
+ die ("wtf GetEventTime unparsable time - " . $szTimStr );
+ }
+
+ // return result!
+ return $eventtime;
+}
+
+/*
+* GetMonthFromString
+*
+* Simple Helper function to obtain the numeric represantation of the month
+*/
+function GetMonthFromString($szMonth)
+{
+ switch($szMonth)
+ {
+ case "Jan":
+ return 1;
+ case "Feb":
+ return 2;
+ case "Mar":
+ return 3;
+ case "Apr":
+ return 4;
+ case "May":
+ return 5;
+ case "Jun":
+ return 6;
+ case "Jul":
+ return 7;
+ case "Aug":
+ return 8;
+ case "Sep":
+ return 9;
+ case "Oct":
+ return 10;
+ case "Nov":
+ return 11;
+ case "Dez":
+ return 12;
+ }
+}
+
+/*
+* AddContextLinks
+*/
+function AddContextLinks(&$sourceTxt)
+{
+ global $szTLDDomains, $CFG;
+
+ // Return if not enabled!
+ if ( !isset($CFG['EnableIPAddressResolve']) || $CFG['EnableIPAddressResolve'] == 1 )
+ {
+ // Search for IP's and Add Reverse Lookup first!
+ $sourceTxt = preg_replace( '/([^\[])\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/e', "'\\1\\2.\\3.\\4.\\5' . ReverseResolveIP('\\2.\\3.\\4.\\5', ' {', '} ')", $sourceTxt );
+ }
+
+ // Create if not set!
+ if ( !isset($szTLDDomains) )
+ CreateTopLevelDomainSearch();
+
+ // Create Search Array
+ $search = array
+ (
+ '/\.([\w\d\_\-]+)\.(' . $szTLDDomains . ')([^a-zA-Z0-9\.])/x',
+// '|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|',
+ '/(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/x',
+ );
+
+ // Create Replace Array
+ $replace = array
+ (
+ '.$1.$2 $3',
+ '$1.$2.$3.$4 ',
+ );
+
+ // Replace and return!
+ $sourceTxt = preg_replace( $search, $replace, $sourceTxt );
+
+//echo $outTxt . " " ;
+//return $outTxt;
+}
+
+/*
+* Reserve Resolve IP Address!
+*/
+function ReverseResolveIP( $szIP, $prepend, $append )
+{
+ global $gl_starttime, $MaxExecutionTime;
+
+ // Substract 5 savety seconds!
+ $scriptruntime = intval(microtime_float() - $gl_starttime);
+ if ( $scriptruntime > ($MaxExecutionTime-5) )
+ return "";
+
+ // Abort if these IP's are postet
+ if ( strpos($szIP, "0.0.0.0") !== false | strpos($szIP, "127.") !== false | strpos($szIP, "255.255.255.255") !== false )
+ return "";
+ else
+ {
+ // Resolve name if needed
+ if ( !isset($_SESSION['dns_cache'][$szIP]) )
+ $_SESSION['dns_cache'][$szIP] = gethostbyaddr($szIP);
+
+ // Abort if IP and RESOLVED name are the same ^^!
+ if ( $_SESSION['dns_cache'][$szIP] == $szIP || strlen($_SESSION['dns_cache'][$szIP]) <= 0 )
+ return;
+
+ // Create string
+ $szReturn = $prepend;
+ $szReturn .= $_SESSION['dns_cache'][$szIP];
+ $szReturn .= $append;
+
+ // return result
+ return $szReturn;
+ }
+}
+
+/*
+* Helper function to create a top level domain search string ONCE per process!
+*/
+function CreateTopLevelDomainSearch()
+{
+ // Current list taken from http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains!
+ global $szTLDDomains;
+ $szTLDDomains = "co.th|com.au|co.uk|co.jp";
+ $szTLDDomains .= "aero|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|cTLD|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw";
+}
+
+// --- BEGIN Usermanagement Function ---
+function StartPHPSession()
+{
+ global $RUNMODE;
+ if ( $RUNMODE == RUNMODE_WEBSERVER )
+ {
+ // This will start the session
+ if (session_id() == "")
+ session_start();
+
+ if ( !isset($_SESSION['SESSION_STARTED']) )
+ $_SESSION['SESSION_STARTED'] = "true";
+ }
+}
+
+function CheckForUserLogin( $isloginpage, $isUpgradePage = false )
+{
+ global $content;
+
+ if ( isset($_SESSION['SESSION_LOGGEDIN']) )
+ {
+ if ( !$_SESSION['SESSION_LOGGEDIN'] )
+ RedirectToUserLogin();
+ else
+ {
+ $content['SESSION_LOGGEDIN'] = "true";
+ $content['SESSION_USERNAME'] = $_SESSION['SESSION_USERNAME'];
+ }
+
+ // New, Check for database Version and may redirect to updatepage!
+ if ( isset($content['database_forcedatabaseupdate']) &&
+ $content['database_forcedatabaseupdate'] == "yes" &&
+ $isUpgradePage == false
+ )
+ RedirectToDatabaseUpgrade();
+ }
+ else
+ {
+ if ( $isloginpage == false )
+ RedirectToUserLogin();
+ }
+
+}
+
+function CreateUserName( $username, $password, $access_level )
+{
+ $md5pass = md5($password);
+ $result = DB_Query("SELECT username FROM " . STATS_USERS . " WHERE username = '" . $username . "'");
+ $rows = DB_GetAllRows($result, true);
+ if ( isset($rows) )
+ {
+ DieWithFriendlyErrorMsg( "User $username already exists!" );
+
+ // User not created!
+ return false;
+ }
+ else
+ {
+ // Create User
+ $result = DB_Query("INSERT INTO " . STATS_USERS . " (username, password, access_level) VALUES ('$username', '$md5pass', $access_level)");
+ DB_FreeQuery($result);
+
+ // Success
+ return true;
+ }
+}
+
+function CheckUserLogin( $username, $password )
+{
+ global $content, $CFG;
+
+ // TODO: SessionTime and AccessLevel check
+
+ $md5pass = md5($password);
+ $sqlselect = "SELECT access_level FROM " . STATS_USERS . " WHERE username = '" . $username . "' and password = '" . $md5pass . "'";
+ $result = DB_Query($sqlselect);
+ $rows = DB_GetAllRows($result, true);
+ if ( isset($rows) )
+ {
+ $_SESSION['SESSION_LOGGEDIN'] = true;
+ $_SESSION['SESSION_USERNAME'] = $username;
+ $_SESSION['SESSION_ACCESSLEVEL'] = $rows[0]['access_level'];
+
+ $content['SESSION_LOGGEDIN'] = "true";
+ $content['SESSION_USERNAME'] = $username;
+
+ // Success !
+ return true;
+ }
+ else
+ {
+ if ( $CFG['MiscShowDebugMsg'] == 1 )
+ DieWithFriendlyErrorMsg( "Debug Error: Could not login user '" . $username . "' Sessionarray " . var_export($_SESSION, true) . " SQL Statement : " . $sqlselect );
+
+ // Default return false
+ return false;
+ }
+}
+
+function DoLogOff()
+{
+ global $content;
+
+ unset( $_SESSION['SESSION_LOGGEDIN'] );
+ unset( $_SESSION['SESSION_USERNAME'] );
+ unset( $_SESSION['SESSION_ACCESSLEVEL'] );
+
+ // Redir to Index Page
+ RedirectPage( "index.php");
+}
+
+function RedirectToUserLogin()
+{
+ // TODO Referer
+ header("Location: login.php?referer=" . $_SERVER['PHP_SELF']);
+ exit;
+}
+
+function RedirectToDatabaseUpgrade()
+{
+ // TODO Referer
+ header("Location: upgrade.php"); // ?referer=" . $_SERVER['PHP_SELF']);
+ exit;
+}
+// --- END Usermanagement Function ---
+
+
?>
\ No newline at end of file