X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/efd3ab012a05e77ab665f48009c2a0f10ade326c..796598ed8f166e284da918c34ca6dd949a0a91f9:/SL/Request.pm diff --git a/SL/Request.pm b/SL/Request.pm index 57b729798..dab57457a 100644 --- a/SL/Request.pm +++ b/SL/Request.pm @@ -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;