# HG changeset patch # User Eric Schmalfuß (prakti) # Date 1360047954 -3600 # Node ID 2f11b54a69fe5defa6bffca28c7fc2fbf096443b # Parent 892a4fac1939a43c32ecf707f26b604a9c31a8f9 Changes diff -r 892a4fac1939 -r 2f11b54a69fe htdocs/cgi-bin/receive --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/cgi-bin/receive Tue Feb 05 08:05:54 2013 +0100 @@ -0,0 +1,65 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use CGI; +use CGI::Carp qw(fatalsToBrowser); + +my ( + $Daten, $value, $name, $text, $anhang, $input, + $q, $key, $wert, $param, %result, $uid +); +my %Formular; +my @Formularfelder; + +#$anhang = $ENV{'QUERY_STRING'}; +read( STDIN, $Daten, $ENV{'CONTENT_LENGTH'} ); +print $Daten; +&verarbeiten; + +sub verarbeiten { + @Formularfelder = split( /&/, $Daten ); + foreach my $Feld (@Formularfelder) { + ( $name, $value ) = split( /=/, $Feld ); + $value=~ s/\<26\>/&/; + $value =~ tr/+/ /; + $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; + $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 + +open OUT,">test"; +print OUT "\@schluessel: @schluessel\n\@werte: @values\n\n"; +print OUT $Daten; +close OUT; + +# Test +$uid=$uid.'.html'; +my $x=0; +open( OUT, ">/var/www/$uid" ); +print OUT ( +' +CGI-Feedback

CGI-Feedback vom Programm recieve

' +); +foreach (@schluessel) { + print OUT ( '

Feldname: ' + . $schluessel[$x] + . ' Inhalt: ' + . $values[$x] + . '
' ); + $x++; +} +print OUT (''); +close OUT; +sleep(180); +system "rm /var/www/$uid"; +__END__ diff -r 892a4fac1939 -r 2f11b54a69fe htdocs/cgi-bin/send_n --- a/htdocs/cgi-bin/send_n Tue Jan 29 15:36:24 2013 +0100 +++ b/htdocs/cgi-bin/send_n Tue Feb 05 08:05:54 2013 +0100 @@ -6,8 +6,14 @@ use CGI; use CGI::Carp qw(fatalsToBrowser); -my ( $cgi, $feld, $feld1, $feld2, $feld3, $url, $ua, $req ); -my $x = 0; +my ( + @feld, $uid, $cgi, $feld, $feld4, $feld1, $feld2, + $feld3, $get, $url, $ua, $ub, $req +); +my $x = 1; +$uid = `uuidgen`; +$uid =~ s/-//g; +chomp $uid; $cgi = new CGI; ####################### @@ -15,13 +21,30 @@ # des Web-Formulars # ####################### -$feld1 = $cgi->param('Firma'); # FIXME: mueller & meier +$feld1 = $cgi->param('Firma'); # FIXED $feld2 = $cgi->param('Name'); $feld3 = $cgi->param('Test'); - -#open( TEST, ">test" ) or die "Kann Handle nicht oeffnen!\n$!"; -#print TEST ("$feld1 ;:; $feld2 ;:; $feld3"); -#close TEST; +$feld4 = $cgi->param('req'); +$feld1 =~ s/\&/\<26\>/g; +$feld1 =~ s/\=/\<3D\>/g; +$feld1 =~ s/\%/\<25\>/g; +$feld1 =~ s/\+/\<2B\>/g; +$feld2 =~ s/\&/\<26\>/g; +$feld2 =~ s/\=/\<3D\>/g; +$feld2 =~ s/\%/\<25\>/g; +$feld2 =~ s/\+/\<2B\>/g; +$feld3 =~ s/\&/\<26\>/g; +$feld3 =~ s/\=/\<3D\>/g; +$feld3 =~ s/\%/\<25\>/g; +$feld3 =~ s/\+/\<2B\>/g; +$feld4 =~ s/\&/\<26\>/g; +$feld4 =~ s/\=/\<3D\>/g; +$feld4 =~ s/\%/\<25\>/g; +$feld4 =~ s/\+/\<2B\>/g; +$feld4 =~ s/\r\n/\n/g; +open( TEST, ">test" ) or die "Kann Handle nicht oeffnen!\n$!"; +print TEST ("$feld1 ;:; $feld2 ;:; $feld3 ;:; $feld4"); +close TEST; my @Feldnamen = $cgi->param(); ####################### @@ -32,12 +55,54 @@ $url = 'http://192.168.0.144/cgi-bin/receive'; $ua = LWP::UserAgent->new; $ua->env_proxy; -$ua->timeout(10); +$ua->timeout(20); +$ua->show_progress; $req = HTTP::Request->new( "POST", $url ); $req->header( 'Content-Type' => 'text/html' ); -$req->content("Name=$feld1&Mail=$feld2&Test=$feld3"); +$req->accept_decodable; +$req->content("ID=$uid&Name=$feld1&Mail=$feld2&Test=$feld3&req=$feld4"); $ua->request($req); +open( HTML1, ">/var/www/$uid" . "1.html" ); +print HTML1 ( +'Download

Klicken Sie bitte auf den Link um ihre Datei zu Downloaden oder anzuzeigen.
Zum Speichern des Inhaltes klicken Sie den Link mit der rechten Maustaste an und wählen "Ziel speichern unter..."

Test

' ); +close HTML1; + +open( HTML, ">/var/www/$uid.html" ); +print HTML ( +"Download

Ihr Download steht in kürze bereit!
Sie werden in 10 sekunden automatisch Weitergeleitet.
Sollte die automatische Weiterleitung nicht funktionieren, klicken Sie bitte hier

" +); + +#print HTML ("Download

Ihr Download steht in kürze bereit!
Sie werden in 10 sekunden automatisch Weitergeleitet.
Sollte die automatische Weiterleitung nicht funktionieren, klicken Sie bitte hier

"); +close HTML; + +# Test + +#$get = HTTP::Request->new( "GET", '192.168.0.144/cgi-bin/'.$uid ); + ####################### # Erstellen einer # # Feedback-Seite zum # @@ -50,12 +115,14 @@ -head => $cgi->meta( { -http_equiv => 'REFRESH', - -content => '5;URL=http://192.168.0.144/index.html' + -content => "2;URL=http://192.168.0.138/$uid.html" } ), -title => 'CGI-Feedback' - ), - $cgi->h1( 'CGI-Feedback vom Programm ', $cgi->i('send') ); + ); + +# $cgi->h1 ('Testen wir mal'),"
",$cgi->i('Countdown: '); +$cgi->h1( 'CGI-Feedback vom Programm ', $cgi->i('send') ); foreach my $Feld (@Feldnamen) { print $cgi->strong('Feldname: '), @@ -63,5 +130,19 @@ $cgi->strong(', Inhalt: '), $cgi->param($Feld), "
"; } -print $cgi->end_html(); +print $cgi->i($uid), $cgi->end_html; + +my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time); +if ($min >= 55){ + $min +=5; + $min -=60; + $hour +=1; +} +else { + $min +=5; +} +open (WRITE, "|at $hour:$min") or die; +print WRITE "rm /var/www/$uid*\n"; +print WRITE "rm /var/www/download/$uid*\n"; +close WRITE; __END__ diff -r 892a4fac1939 -r 2f11b54a69fe htdocs/index.html --- a/htdocs/index.html Tue Jan 29 15:36:24 2013 +0100 +++ b/htdocs/index.html Tue Feb 05 08:05:54 2013 +0100 @@ -3,9 +3,9 @@ SSL-Zertifikat erneuern - -

Zertifikat abgelaufen

-

Voraussetzung ist eine Verbindung ins Internet. Es werden keine Daten gespeichert, das verarbeitende CGI-Script gibt lediglich die eingelesenen Daten aus.

+ +

Zertifikat abgelaufen?

+

Dann füllen Sie doch einfach das Formular aus.

@@ -20,6 +20,9 @@ + + +
Test:
Request-Code:
(optional)