start of using SM-stable methods for handling global vars
authorstekkel <stekkel@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Mon, 19 Aug 2002 12:21:00 +0000 (12:21 +0000)
committerstekkel <stekkel@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Mon, 19 Aug 2002 12:21:00 +0000 (12:21 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@3360 7612ce4b-ef26-0410-bec9-ea0150e637f0

functions/global.php [new file with mode: 0644]

diff --git a/functions/global.php b/functions/global.php
new file mode 100644 (file)
index 0000000..7aa68ed
--- /dev/null
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * globals.php
+ *
+ * Copyright (c) 1999-2002 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 
+ * It also has two session register functions that work across various
+ * php versions. 
+ *
+ * $Id$
+ */
+
+
+/* convert old-style superglobals to current method
+ * this is executed if you are running PHP 4.0.x.
+ * it is run via a require_once directive in validate.php 
+ * and redirect.php. Patch submitted by Ray Black.
+ */ 
+
+if ( (float)substr(PHP_VERSION,0,3) < 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;
+  $_COOKIE  =& $HTTP_COOKIE_VARS;
+  $_ENV     =& $HTTP_ENV_VARS;
+  $_FILES   =& $HTTP_POST_FILES;
+  $_GET     =& $HTTP_GET_VARS;
+  $_POST    =& $HTTP_POST_VARS;
+  $_SERVER  =& $HTTP_SERVER_VARS;
+  $_SESSION =& $HTTP_SESSION_VARS;
+}
+
+function sqsession_register ($var, $name) {
+    $rg = ini_get('register_globals');
+    if ( (float)substr(PHP_VERSION,0,3) < 4.1 && empty($rg)) {
+        global $HTTP_SESSION_VARS;
+        $HTTP_SESSION_VARS["$name"] = $var;
+    }
+    else {
+        session_register("$name");
+    }
+}
+function sqsession_unregister ($name) {
+    $rg = ini_get('register_globals');
+    if ( (float)substr(PHP_VERSION,0,3) < 4.1 && empty($rg)) {
+    global $HTTP_SESSION_VARS;
+        unset($HTTP_SESSION_VARS["$name"]);
+    }
+    else {
+        session_unregister("$name");
+    }
+}
+
+/**
+ *  Search for the var $name in $_SESSION, $_POST, $_GET
+ *  (in that order) and register it as a global var.
+ */
+function sqextractGlobalVar ($name) {
+    global $_SESSION, $_GET, $_POST, $$name;
+
+    if( isset($_SESSION[$name]) ) {
+        $$name = $_SESSION[$name];
+    }
+    if( isset($_POST[$name]) ) {
+        $$name = $_POST[$name];
+    }
+    else if ( isset($_GET[$name]) ) {
+        $$name =  $_GET[$name];
+    }
+}
+?>