X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fprefs.php;h=10ea919a3d78f2e76454382eb9e66ca8f959dff4;hb=ba0d44609ab8bc4e5ec05d0846dfa055705ee039;hp=bc534c346e55e33e1200c48d8e34e879e0ee63fe;hpb=4fc152a6150a56ea36302b9216202b195f5798f6;p=squirrelmail.git diff --git a/functions/prefs.php b/functions/prefs.php index bc534c34..10ea919a 100644 --- a/functions/prefs.php +++ b/functions/prefs.php @@ -3,7 +3,7 @@ /** * prefs.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 contains functions for manipulating user preferences @@ -11,13 +11,20 @@ * $Id$ */ -global $prefs_are_cached, $prefs_cache; +require_once(SM_PATH . 'functions/global.php'); -if ( !session_is_registered('prefs_are_cached') || +sqgetGlobalVar('prefs_cache', $prefs_cache, SQ_SESSION ); +sqgetGlobalVar('prefs_are_cached', $prefs_are_cached, SQ_SESSION ); + +$rg = ini_get('register_globals'); + +/* if php version >= 4.1 OR (4.0 AND $rg = off) */ +if ( !sqsession_is_registered('prefs_are_cached') || !isset( $prefs_cache) || !is_array( $prefs_cache) || - substr( phpversion(), 0, 3 ) == '4.1' || - substr( phpversion(), 0, 3 ) == '4.2' ) { + check_php_version(4,1) || + empty($rg) + ) { $prefs_are_cached = false; $prefs_cache = array(); } @@ -44,7 +51,8 @@ function getHashedFile($username, $dir, $datafile, $hash_search = true) { /* First, get and make sure the full hash directory exists. */ $real_hash_dir = getHashedDir($username, $dir, $hash_dirs); - /* Set the value of our real data file. */ + /* Set the value of our real data file, after we've removed unwanted characters. */ + $datafile = str_replace('/', '_', $datafile); $result = "$real_hash_dir/$datafile"; /* Check for this file in the real hash directory. */