浏览代码

Erroneous use of quotes in the switch in sqgetGlobalVar.
Don't know why I listened to whoever told me to add them.. <sighs>
thought it was acting funny whenever you tried to receive
variables outside of the default.
BLARGH.
it works now, so there.

Erin Schnabel 22 年之前
父节点
当前提交
c1052db2fd
共有 2 个文件被更改,包括 48 次插入33 次删除
  1. 1 0
      ChangeLog
  2. 47 33
      functions/global.php

+ 1 - 0
ChangeLog

@@ -29,6 +29,7 @@ Version 1.4.0 CVS
   - Fixed unfold header routine in imap_messages (for mailbox_display).
   - Make listcommands work with PHP versions 4.0.4 & 4.0.5.
   - Fixed subject_line hook
+  - Fixed sqgetGlobalVar switching
   
 Version 1.4.0 RC 2a
 -------------------

+ 47 - 33
functions/global.php

@@ -168,10 +168,19 @@ 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.
+ *
+ * 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.
  */
@@ -179,46 +188,51 @@ function sqgetGlobalVar($name, &$value, $search = SQ_INORDER) {
     if ( !check_php_version(4,1) ) {
         global $_SESSION, $_GET, $_POST, $_COOKIE, $_SERVER;
     }
-    
+
+    /* 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:
+      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_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:
+print "SQ_SERVER CASE<br />\n";
+        if ( isset($_SERVER[$name]) ) {
+            $value = $_SERVER[$name];
+            return TRUE;
+        }
+        break;
     }
     return FALSE;
 }