Explorar o código

* Adds code for the Konqueror workaround

Tyler Akins %!s(int64=24) %!d(string=hai) anos
pai
achega
86ed1fa18f
Modificáronse 1 ficheiros con 20 adicións e 9 borrados
  1. 20 9
      functions/strings.php

+ 20 - 9
functions/strings.php

@@ -24,31 +24,42 @@
    // 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.
+   // or "\r\n" as the first two (compensating for RedHat's flawed package
+   // and Konqueror, respectively), and the script is compose.php, then
+   // trim everything.  Otherwise, we don't have to worry.
+   //
+   // If RedHat ever gets PHP officially upgraded past package php-4.0.4pl1-3
+   // or if Konqueror and PHP start working together, modify/remove this hack
    global $send, $PHP_SELF;
-   if (isset($send) && substr($send, 0, 1) == "\n" &&
-       substr($PHP_SELF, -12) == "/compose.php")
+   $trimChars = 0;
+   if (isset($send) && substr($PHP_SELF, -12) == "/compose.php")
+   {
+       if (substr($send, 0, 1) == "\n")
+           $trimChars = 1;
+       if (substr($send, 0, 2) == "\r\n")
+           $trimChars = 2;
+   }
+   if ($trimChars)
    {
       if ($REQUEST_METHOD == "POST") {
-         TrimArray($HTTP_POST_VARS);
+         TrimArray($HTTP_POST_VARS, $trimChars);
       } else {
-         TrimArray($HTTP_GET_VARS);
+         TrimArray($HTTP_GET_VARS, $trimChars);
       }
    }
 
    //**************************************************************************
    // Trims every element in the array
    //**************************************************************************
-   function TrimArray(&$array) {
+   function TrimArray(&$array, $trimChars) {
       foreach ($array as $k => $v) {
          global $$k;
          if (is_array($$k)) {
             foreach ($$k as $k2 => $v2) {
-	       $$k[$k2] = substr($v2, 1);
+	       $$k[$k2] = substr($v2, $trimChars);
             }
          } else {
-            $$k = substr($v, 1);
+            $$k = substr($v, $trimChars);
          }
       }
    }