added constants to fetch COOKIE and SERVER values
[squirrelmail.git] / functions / global.php
index 5bbfd796a4dd34c64d411fd04ad085a2998815bf..1286b9807cce72c7bdc407065887afff53d0c229 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * globals.php
  *
- * Copyright (c) 1999-2002 The SquirrelMail Project Team
+ * Copyright (c) 1999-2003 The SquirrelMail Project Team
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * This includes code to update < 4.1.0 globals to the newer format 
@@ -158,6 +158,72 @@ function sqsession_is_registered ($name) {
 }
 
 
+define('SQ_INORDER',0);
+define('SQ_GET',1);
+define('SQ_POST',2);
+define('SQ_SESSION',3);
+define('SQ_COOKIE',4);
+define('SQ_SERVER',5);
+
+/**
+ * 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.
+ * 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;
+    }
+    
+    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]) ) {
+            $value = $_SESSION[$name];
+           return TRUE;
+          } elseif ( $search == SQ_SESSION ) {
+           break;
+         }
+       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 DEFAULT 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;
+}
+
 /**
  *  Search for the var $name in $_SESSION, $_POST, $_GET
  *  (in that order) and register it as a global var.