#!/usr/bin/perl

use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use Net::SCP;

my (
    $Daten, $value, $name, $text,  $anhang, $input,
    $q,     $key,   $wert, $param, %result, $uid
);
my %Formular;
my @Formularfelder;

read( STDIN, $Daten, $ENV{'CONTENT_LENGTH'} );
print $Daten;
&verarbeiten;

sub verarbeiten {
    @Formularfelder = split( /&/, $Daten );
    foreach my $Feld (@Formularfelder) {
        ( $name, $value ) = split( /=/, $Feld );
        	$value =~ tr/+/ /;
        	$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
		$value =~ s/\<3D\>/\=/g;
		$value =~ s/\<25\>/\%/g;
		$value =~ s/\<2B\>/\+/g;
		$value =~ s/\<26\>/\&/g;
        $Formular{$name} = $value;
    }
}
$uid=$Formular{ID};
chomp$uid;
my @test=$Formular{req};
my @schluessel = keys(%Formular);
@schluessel = reverse @schluessel;
my @values = values(%Formular);
@values = reverse @values;

# Folgend Test-Script

if ($Formular{req} ne ''){
	open (OUT, ">$uid.pem");
	print OUT "$Formular{req}";
	close OUT;
}

open OUT,">$uid";
print OUT "\@schluessel:\t=\t\@werte:\n";
print OUT "------------\t\t-------\n\n";
for(my $x=0;$x<=$#schluessel;$x++){
print OUT "$schluessel[$x]\t\t=\t$values[$x]\n";
}
close OUT;

my $scp=Net::SCP->new();
$scp->scp($uid,'root@192.168.0.138:/var/www/download/');
unlink $uid, "$uid.pem";
__END__

# Test
my $x=0;
open( OUT, ">/var/www/$uid.html" );
print OUT (
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US"><head>
<title>CGI-Feedback</title><body><h1>CGI-Feedback vom Programm  <i>recieve</i></h1>'
);
foreach (@schluessel) {
    print OUT ( '<p><B>Feldname: </B>'
          . $schluessel[$x]
          . ' <B> Inhalt: </B>'
          . $values[$x]
          . '<br>' );
    $x++;
}
print OUT ('</body></html>');
close OUT;
