]> git.mxchange.org Git - ctracker.git/blobdiff - libs/lib_general.php
Experimental commit:
[ctracker.git] / libs / lib_general.php
index 0738f41cd69a844564de659423f0b04d8b85c533..fe382dc249938179c20c9db3921ea562de560dc5 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @author             Roland Haeder <webmaster@ship-simu.org>
  * @version            3.0.0
- * @copyright  Copyright (c) 2009, 2010 Cracker Tracker Team
+ * @copyright  Copyright (c) 2009 - 2011 Cracker Tracker Team
  * @license            GNU GPL 3.0 or any newer version
  * @link               http://www.ship-simu.org
  *
@@ -73,14 +73,17 @@ if (!function_exists('implode_secure')) {
        } // END - function
 } // END - if
 
-// Getter for ctracker_debug
+// Getter for ctracker_debug_enabled
 function isCrackerTrackerDebug () {
        // Is it set?
-       return ((isset($GLOBALS['ctracker_debug'])) && ($GLOBALS['ctracker_debug'] === true));
+       return ((isset($GLOBALS['ctracker_debug_enabled'])) && ($GLOBALS['ctracker_debug_enabled'] === true));
 }
 
 // Determines the real remote address
 function determineCrackerTrackerRealRemoteAddress () {
+       // Initial value
+       $address = '0.0.0.0';
+
        // Is a proxy in use?
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                // Proxy was used
@@ -88,9 +91,9 @@ function determineCrackerTrackerRealRemoteAddress () {
        } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
                // Yet, another proxy
                $address = $_SERVER['HTTP_CLIENT_IP'];
-       } else {
+       } elseif (isset($_SERVER['REMOTE_ADDR'])) {
                // The regular address when no proxy was used
-               $address = $_SERVER['REMOTE_ADDR'];
+               $address = getenv('REMOTE_ADDR');
        }
 
        // This strips out the real address from proxy output
@@ -129,18 +132,36 @@ function crackerTrackerUserAgent () {
 
 // Detects the script name
 function crackerTrackerScriptName () {
+       // Is it there?
+       if (!isset($_SERVER['SCRIPT_NAME'])) {
+               // Return NULL
+               return NULL;
+       } // END - if
+
        // Should always be there!
        return crackerTrackerSecureString($_SERVER['SCRIPT_NAME']);
 }
 
 // Detects the query string
 function crackerTrackerQueryString () {
+       // Is it there?
+       if (!isset($_SERVER['QUERY_STRING'])) {
+               // Return NULL
+               return NULL;
+       } // END - if
+
        // Should always be there!
        return crackerTrackerEscapeString($_SERVER['QUERY_STRING']);
 }
 
 // Detects the server's name
 function crackerTrackerServerName () {
+       // Is it there?
+       if (!isset($_SERVER['SERVER_NAME'])) {
+               // Return NULL
+               return NULL;
+       } // END - if
+
        // Should always be there!
        return crackerTrackerSecureString($_SERVER['SERVER_NAME']);
 }
@@ -415,13 +436,9 @@ function crackerTrackerRedirectSameUrl () {
 }
 
 /**
- * Send a HTTP redirect to the browser. This function wass taken from DokuWiki
+ * Send a HTTP redirect to the browser. This function was taken from DokuWiki
  * (GNU GPL 2; http://www.dokuwiki.org) and modified to fit into this script.
  *
- * ----------------------------------------------------------------------------
- * If you want to redirect, please use redirectToUrl(); instead
- * ----------------------------------------------------------------------------
- *
  * Works arround Microsoft IIS cookie sending bug. Does exit the script.
  *
  * @link    http://support.microsoft.com/kb/q176113/
@@ -429,6 +446,9 @@ function crackerTrackerRedirectSameUrl () {
  * @access  private
  */
 function crackerTrackerSendRawRedirect ($url) {
+       // Better remove any data by ctracker
+       unsetCtrackerData();
+
        // always close the session
        session_write_close();
 
@@ -449,5 +469,35 @@ function crackerTrackerSendRawRedirect ($url) {
        exit();
 }
 
+// Removes all ctracker-related data from global space
+function unsetCtrackerData () {
+       // Unset all ctracker data
+       foreach (array(
+                       'ctracker_host',
+                       'ctracker_dbname',
+                       'ctracker_user',
+                       'ctracker_password',
+                       'ctracker_debug_enabled',
+                       'ctracker_email',
+                       'ctracker_whitelist',
+                       'ctracker_get_blacklist',
+                       'ctracker_post_blacklist',
+                       'ctracker_header',
+                       'ctracker_post_track',
+                       'ctracker_checkworm',
+                       'ctracker_check_post',
+                       'ctracker_last_sql',
+                       'ctracker_last_result',
+                       'ctracker_config',
+                       'ctracker_updates',
+                       'ctracker_language',
+                       'ctracker_localized',
+                       'ctracker_link',
+               ) as $key) {
+                       // Unset it
+                       unset($GLOBALS[$key]);
+       } // END - foreach
+}
+
 // [EOF]
 ?>