From 4dc79fd1490f74c12d7c262c30f2571e6146f043 Mon Sep 17 00:00:00 2001 From: fidian Date: Wed, 7 Feb 2001 04:24:43 +0000 Subject: [PATCH] * Auto-detects if form is 'compose.php' and if PHP is giving us bad form data and will only trim when appropriate (the multipart/form-data form) * Trimming method doesn't eliminate extra newlines -- just the first one. * Cleaned up the code a bit. * This code should be removed somewhat soon after RedHat officially releases a good binary package and after Konqueror works. git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@1069 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- ChangeLog | 4 ++-- functions/strings.php | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index d467018c..d3432280 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ Version 1.0.2 -- DEVELOPMENT ---------------------------- -- Added $fix_form_endlines option in strings.php to workaround - Konq/PHP4.0.3 problems +- Added a workaround for RedHat's 4.0.4pl1-3 binary package (It's also + the same workaround for Konqueror and other PHP installations?) - Select All works through the search - Better escaped string handling from POST variables - Many more code cleanups and optimizations diff --git a/functions/strings.php b/functions/strings.php index e1a35282..8425c410 100644 --- a/functions/strings.php +++ b/functions/strings.php @@ -20,8 +20,16 @@ RemoveSlashes($HTTP_GET_VARS); } } - - if (isset($fix_form_endlines) && $fix_form_endlines) { + + // 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. + global $send, $PHP_SELF; + if (isset($send) && substr($send, 0, 1) == "\n" && + substr($PHP_SELF, -12) == "/compose.php") + { if ($REQUEST_METHOD == "POST") { TrimArray($HTTP_POST_VARS); } else { @@ -30,18 +38,17 @@ } //************************************************************************** - // Trims every element in the array and returns a new array. + // Trims every element in the array //************************************************************************** function TrimArray(&$array) { foreach ($array as $k => $v) { global $$k; if (is_array($$k)) { foreach ($$k as $k2 => $v2) { - $newArray[trim($k2)] = trim($v2); + $$k[$k2] = substr($v2, 1); } - $$k = $newArray; } else { - $$k = trim($v); + $$k = substr($v, 1); } } } -- 2.25.1