X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fprefs.php;h=e96147b921f6d4c1d2e8da5c1f55501fddd047b2;hb=9736fafe4d6bebd1fa8f0ab5a48155411fcbe463;hp=aaa263b2aa4550a3407b37f5c3c37eed44757dd1;hpb=f435778e5dabea883d6394d5ab43ae72d51dfd50;p=squirrelmail.git diff --git a/functions/prefs.php b/functions/prefs.php index aaa263b2..e96147b9 100644 --- a/functions/prefs.php +++ b/functions/prefs.php @@ -12,11 +12,12 @@ define('prefs_php', true); global $prefs_are_cached, $prefs_cache; - $prefs_are_cached = false; - $prefs_cache = array(); + if (!session_is_registered('prefs_are_cached')) { + $prefs_are_cached = false; + $prefs_cache = array(); + } - function cachePrefValues($data_dir, $username) - { + function cachePrefValues($data_dir, $username) { global $prefs_are_cached, $prefs_cache; if ($prefs_are_cached) @@ -25,7 +26,7 @@ $filename = $data_dir . $username . '.pref'; if (!file_exists($filename)) { - printf (_("Preference file, %s, does not exist. Log out, and log back in to create a default preference file."), $filename); + printf (_("Preference file, %s, does not exist. Log out, and log back in to create a default preference file."), $filename); exit; } @@ -35,24 +36,28 @@ $highlight_num = 0; while (! feof($file)) { $pref = trim(fgets($file, 1024)); - $equalsAt = strpos($pref, '='); - if ($equalsAt > 0) - { - $Key = substr($pref, 0, $equalsAt); - $Value = substr($pref, $equalsAt + 1); - if (substr($Key, 0, 9) == 'highlight') - { - $Key = 'highlight' . $highlight_num; - $highlight_num ++; + $equalsAt = strpos($pref, '='); + if ($equalsAt > 0) { + $Key = substr($pref, 0, $equalsAt); + $Value = substr($pref, $equalsAt + 1); + if (substr($Key, 0, 9) == 'highlight') { + $Key = 'highlight' . $highlight_num; + $highlight_num ++; } - if ($Value != '') - $prefs_cache[$Key] = $Value; - } + if ($Value != '') { + $prefs_cache[$Key] = $Value; + } + } } fclose($file); + + session_unregister('prefs_cache'); + session_register('prefs_cache'); $prefs_are_cached = true; + session_unregister('prefs_are_cached'); + session_register('prefs_are_cached'); } @@ -68,15 +73,14 @@ } - function savePrefValues($data_dir, $username) - { + function savePrefValues($data_dir, $username) { global $prefs_cache; $file = fopen($data_dir . $username . '.pref', "w"); - foreach ($prefs_cache as $Key => $Value) - { - if (isset($Value)) + foreach ($prefs_cache as $Key => $Value) { + if (isset($Value)) { fwrite($file, $Key . '=' . $Value . "\n"); + } } fclose($file); } @@ -87,9 +91,10 @@ cachePrefValues($data_dir, $username); - if (isset($prefs_cache[$string])) + if (isset($prefs_cache[$string])) { unset($prefs_cache[$string]); - + } + savePrefValues($data_dir, $username); } @@ -98,9 +103,7 @@ global $prefs_cache; cachePrefValues($data_dir, $username); - $prefs_cache[$string] = $set_to; - savePrefValues($data_dir, $username); }