X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Fvalidate.php;h=2d6fc3d511ab2ef9168412e0842905326a71a2fb;hp=96e2dcf8c73882e735680ef9d18c63d3d81770ea;hb=c5d639df75b9ae0043587897464a65d3e9398a6a;hpb=59e95aca30a88261aec7722a21aaac8592a69b8c diff --git a/src/validate.php b/src/validate.php index 96e2dcf8..2d6fc3d5 100644 --- a/src/validate.php +++ b/src/validate.php @@ -1,116 +1,73 @@ $v) { - global $$k; - if (is_array($$k)) { - foreach ($$k as $k2 => $v2) { - $$k[$k2] = substr($v2, 1); - } - } else { - $$k = substr($v, 1); - } - // Re-assign back to array - $array[$k] = $$k; - } - } - - - //************************************************************************** - // Removes slashes from every element in the array - //************************************************************************** - function RemoveSlashes(&$array) - { - foreach ($array as $k => $v) - { - global $$k; - if (is_array($$k)) - { - foreach ($$k as $k2 => $v2) - { - $newArray[stripslashes($k2)] = stripslashes($v2); - } - $$k = $newArray; - } - else - { - $$k = stripslashes($v); - } - // Re-assign back to the array - $array[$k] = $$k; - } - } + if ($REQUEST_METHOD == 'POST') { + global $HTTP_POST_VARS; + RemoveSlashes($HTTP_POST_VARS); + } else if ($REQUEST_METHOD == 'GET') { + global $HTTP_GET_VARS; + RemoveSlashes($HTTP_GET_VARS); + } +} - // Everyone needs stuff from config, and config needs stuff from - // strings.php, so include them both here. - // Include them down here instead of at the top so that all config - // variables overwrite any passed in variables (for security) - require_once('../functions/strings.php'); - require_once('../config/config.php'); - require_once('../src/load_prefs.php'); - require_once('../functions/page_header.php'); - require_once('../functions/prefs.php'); +/** +* Auto-detection +* +* if $send (the form button's name) contains "\n" as the first char +* and the script is compose.php, then trim everything. Otherwise, we +* don't have to worry. +* +* This is for a RedHat package bug and a Konqueror (pre 2.1.1?) bug +*/ +global $send, $PHP_SELF; +if (isset($send) + && (substr($send, 0, 1) == "\n") + && (substr($PHP_SELF, -12) == '/compose.php')) { + if ($REQUEST_METHOD == 'POST') { + global $HTTP_POST_VARS; + TrimArray($HTTP_POST_VARS); + } else { + global $HTTP_GET_VARS; + TrimArray($HTTP_GET_VARS); + } +} - // Set up the language - // i18n.php was included by auth.php - global $username, $data_dir; - set_up_language(getPref($data_dir, $username, 'language')); -?> +/** +* Everyone needs stuff from config, and config needs stuff from +* strings.php, so include them both here. Actually, strings is +* included at the top now as the string array functions have +* been moved into it. +* +* Include them down here instead of at the top so that all config +* variables overwrite any passed in variables (for security). +*/ +require_once('../config/config.php'); +require_once('../src/load_prefs.php'); +require_once('../functions/page_header.php'); +require_once('../functions/prefs.php'); + +/* Set up the language (i18n.php was included by auth.php). */ +global $username, $data_dir; +set_up_language(getPref($data_dir, $username, 'language')); + +?> \ No newline at end of file