Added separate iso-8859-*, cp1257 and big5 decoding files
[squirrelmail.git] / functions / global.php
index d5dd9ca54247da6d110c047a09d1250a8f23ddd0..498700b888d4857c7117e2256ea13543ab2cae20 100644 (file)
@@ -38,7 +38,7 @@ ini_set('magic_quotes_runtime','0');
 if ( !check_php_version(4,1) ) {
   global $_COOKIE, $_ENV, $_FILES, $_GET, $_POST, $_SERVER, $_SESSION;
   global $HTTP_COOKIE_VARS, $HTTP_ENV_VARS, $HTTP_POST_FILES, $HTTP_GET_VARS,
-         $HTTP_POST_VARS, $HTTP_SERVER_VARS, $HTTP_SESSION_VARS;
+         $HTTP_POST_VARS, $HTTP_SERVER_VARS, $HTTP_SESSION_VARS, $PHP_SELF;
   $_COOKIE  =& $HTTP_COOKIE_VARS;
   $_ENV     =& $HTTP_ENV_VARS;
   $_FILES   =& $HTTP_POST_FILES;
@@ -46,6 +46,9 @@ if ( !check_php_version(4,1) ) {
   $_POST    =& $HTTP_POST_VARS;
   $_SERVER  =& $HTTP_SERVER_VARS;
   $_SESSION =& $HTTP_SESSION_VARS;
+  if (!isset($PHP_SELF) || empty($PHP_SELF)) {
+     $PHP_SELF =  $HTTP_SERVER_VARS['PHP_SELF'];
+  }
 }
 
 /* if running with magic_quotes_gpc then strip the slashes
@@ -164,61 +167,84 @@ define('SQ_POST',2);
 define('SQ_SESSION',3);
 define('SQ_COOKIE',4);
 define('SQ_SERVER',5);
+define('SQ_FORM',6);
 
 /**
  * Search for the var $name in $_SESSION, $_POST, $_GET,
  * $_COOKIE, or $_SERVER and set it in provided var. 
+ *
  * If $search is not provided,  or == SQ_INORDER, it will search
  * $_SESSION, then $_POST, then $_GET. Otherwise,
  * use one of the defined constants to look for 
  * a var in one place specifically.
+ *
+ * Note: $search is an int value equal to one of the 
+ * constants defined above.
+ *
+ * example:
+ *    sqgetGlobalVar('username',$username,SQ_SESSION);
+ *  -- no quotes around last param!
+ *
  * Returns FALSE if variable is not found.
  * Returns TRUE if it is.
  */
 function sqgetGlobalVar($name, &$value, $search = SQ_INORDER) {
+
     if ( !check_php_version(4,1) ) {
-        global $_SESSION, $_GET, $_POST, $_COOKIE, $_SERVER;
+        global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, 
+               $HTTP_SERVER_VARS, $HTTP_SESSION_VARS;
+
+        $_COOKIE  =& $HTTP_COOKIE_VARS;
+        $_GET     =& $HTTP_GET_VARS;
+        $_POST    =& $HTTP_POST_VARS;
+        $_SERVER  =& $HTTP_SERVER_VARS;
+        $_SESSION =& $HTTP_SESSION_VARS;
     }
-    
+
+    /* NOTE: DO NOT enclose the constants in the switch
+       statement with quotes. They are constant values,
+       enclosing them in quotes will cause them to evaluate
+       as strings. */
     switch ($search) {
         /* we want the default case to be first here,  
           so that if a valid value isn't specified, 
           all three arrays will be searched. */
-       default:
-       case 'SQ_INORDER':
-       case 'SQ_SESSION':
-         if( isset($_SESSION[$name]) ) {
+      default:
+      case SQ_INORDER: // check session, post, get
+      case SQ_SESSION:
+        if( isset($_SESSION[$name]) ) {
             $value = $_SESSION[$name];
-           return TRUE;
-          } elseif ( $search == SQ_SESSION ) {
-           break;
-         }
-       case 'SQ_POST':
-         if( isset($_POST[$name]) ) {
+            return TRUE;
+        } elseif ( $search == SQ_SESSION ) {
+            break;
+        }
+      case SQ_FORM:   // check post, get
+      case SQ_POST:
+        if( isset($_POST[$name]) ) {
             $value = $_POST[$name];
-           return TRUE;
-         } elseif ( $search == SQ_POST ) {
-           break;
-         }
-               case 'SQ_GET':
-         if ( isset($_GET[$name]) ) {
-            $value = $_GET[$name];
-           return TRUE;
-         } 
-         /* NO IF HERE. FOR SQ_INORDER CASE, EXIT after GET */
-         break;
-        case 'SQ_COOKIE':
-          if ( isset($_COOKIE[$name]) ) {
-             $value = $_COOKIE[$name];
-             return TRUE;
-          }
-         break;
-       case 'SQ_SERVER':
-          if ( isset($_SERVER[$name]) ) {
-             $value = $_SERVER[$name];
-             return TRUE;
-          }
+            return TRUE;
+        } elseif ( $search == SQ_POST ) {
           break;
+        }
+      case SQ_GET:
+        if ( isset($_GET[$name]) ) {
+            $value = $_GET[$name];
+            return TRUE;
+        } 
+        /* NO IF HERE. FOR SQ_INORDER CASE, EXIT after GET */
+        break;
+      case SQ_COOKIE:
+        if ( isset($_COOKIE[$name]) ) {
+            $value = $_COOKIE[$name];
+            return TRUE; 
+        }
+        break;
+      case SQ_SERVER:
+        if ( isset($_SERVER[$name]) ) {
+            $value = $_SERVER[$name];
+            return TRUE;
+        }
+        break;
     }
     return FALSE;
 }