Functions - persistent_form_values: Update to support greater flexibility.

This commit is contained in:
fusionate 2020-12-30 19:36:52 -07:00
parent be28ab7af4
commit 1f5283e53d
1 changed files with 20 additions and 10 deletions

View File

@ -2153,19 +2153,29 @@ function number_pad($number,$n) {
function persistent_form_values($action, $array = null) { function persistent_form_values($action, $array = null) {
switch ($action) { switch ($action) {
case 'store': case 'store':
// $array is expected to be an array of key / value pairs to store in the session
if (is_array($array) && @sizeof($array) != 0) { if (is_array($array) && @sizeof($array) != 0) {
$_SESSION[$_SERVER['PHP_SELF']] = $array; $_SESSION['persistent'][$_SERVER['PHP_SELF']] = $array;
} }
break; break;
case 'exists': case 'exists':
return is_array($_SESSION[$_SERVER['PHP_SELF']]) && @sizeof($_SESSION[$_SERVER['PHP_SELF']]) != 0 ? true : false; return is_array($_SESSION['persistent'][$_SERVER['PHP_SELF']]) && @sizeof($_SESSION['persistent'][$_SERVER['PHP_SELF']]) != 0 ? true : false;
break; break;
case 'load': case 'load':
if (is_array($_SESSION[$_SERVER['PHP_SELF']]) && @sizeof($_SESSION[$_SERVER['PHP_SELF']]) != 0) { // $array is expected to be the name of the array to create containing the key / value pairs
foreach ($_SESSION[$_SERVER['PHP_SELF']] as $key => $value) { if ($array && !is_array($array)) {
global $$array;
}
if (is_array($_SESSION['persistent'][$_SERVER['PHP_SELF']]) && @sizeof($_SESSION['persistent'][$_SERVER['PHP_SELF']]) != 0) {
foreach ($_SESSION['persistent'][$_SERVER['PHP_SELF']] as $key => $value) {
if ($key != 'XID' && $key != 'ACT' && $key != 'RET') { if ($key != 'XID' && $key != 'ACT' && $key != 'RET') {
global $$key; if ($array && !is_array($array)) {
$$key = $value; $$array[$key] = $value;
}
else {
global $$key;
$$key = $value;
}
} }
} }
global $unsaved; global $unsaved;
@ -2173,12 +2183,12 @@ function number_pad($number,$n) {
} }
break; break;
case 'view': case 'view':
if (is_array($_SESSION[$_SERVER['PHP_SELF']]) && @sizeof($_SESSION[$_SERVER['PHP_SELF']]) != 0) { if (is_array($_SESSION['persistent'][$_SERVER['PHP_SELF']]) && @sizeof($_SESSION['persistent'][$_SERVER['PHP_SELF']]) != 0) {
view_array($_SESSION[$_SERVER['PHP_SELF']], false); view_array($_SESSION['persistent'][$_SERVER['PHP_SELF']], false);
} }
break; break;
case 'clear': case 'clear':
unset($_SESSION[$_SERVER['PHP_SELF']]); unset($_SESSION['persistent'][$_SERVER['PHP_SELF']]);
break; break;
} }
} }