SL::DB::Invoice: Eine Warning unterdrücken.
[kivitendo-erp.git] / SL / Request.pm
index 57b7297..dab5745 100644 (file)
@@ -165,7 +165,7 @@ sub _recode_recursively {
         # Workaround for a bug: converting $from->[$idx] directly
         # leads to 'undef'. I don't know why. Converting a copy works,
         # though.
-        $from->[$idx] = $iconv->convert("" . $from->[$idx]);
+        $to->[$idx] = $iconv->convert("" . $from->[$idx]);
       } else {
         $to->[$idx] ||= {} if 'HASH'  eq ref $from->[$idx];
         $to->[$idx] ||= [] if 'ARRAY' eq ref $from->[$idx];
@@ -199,9 +199,6 @@ sub read_cgi_input {
   if ($ENV{CONTENT_LENGTH}) {
     my $content;
     read STDIN, $content, $ENV{CONTENT_LENGTH};
-    open my $fh, '>:raw', '/tmp/blubb.bin' or die;
-    print $fh $content;
-    close $fh;
     if ($ENV{'CONTENT_TYPE'} && $ENV{'CONTENT_TYPE'} =~ /multipart\/form-data/) {
       # multipart formdata can bring it's own encoding, so give it both
       # and let ti decide on it's own
@@ -212,18 +209,16 @@ sub read_cgi_input {
     }
   }
 
+  my $encoding     = delete $temp_target->{INPUT_ENCODING} || $db_charset;
+
+  _recode_recursively(SL::Iconv->new($encoding, $db_charset), $temp_target => $target) if keys %$target;
+
   if ($target->{RESTORE_FORM_FROM_SESSION_ID}) {
     my %temp_form;
     $::auth->restore_form_from_session(delete $target->{RESTORE_FORM_FROM_SESSION_ID}, form => \%temp_form);
     _store_value($target, $_, $temp_form{$_}) for keys %temp_form;
   }
 
-  my $encoding     = delete $temp_target->{INPUT_ENCODING} || $db_charset;
-
-  _recode_recursively(SL::Iconv->new($encoding, $db_charset), $temp_target => $target) if keys %$target;
-
-  map { $target->{$_} = $temp_target->{$_} } keys %{ $temp_target };
-
   $::lxdebug->leave_sub;
 
   return $target;