4 use strict; |
4 use strict; |
5 use LWP::UserAgent; |
5 use LWP::UserAgent; |
6 use CGI; |
6 use CGI; |
7 use CGI::Carp qw(fatalsToBrowser); |
7 use CGI::Carp qw(fatalsToBrowser); |
8 |
8 |
9 my ( $cgi, $feld, $feld1, $feld2, $feld3, $url, $ua, $req ); |
9 my ( |
10 my $x = 0; |
10 @feld, $uid, $cgi, $feld, $feld4, $feld1, $feld2, |
|
11 $feld3, $get, $url, $ua, $ub, $req |
|
12 ); |
|
13 my $x = 1; |
|
14 $uid = `uuidgen`; |
|
15 $uid =~ s/-//g; |
|
16 chomp $uid; |
11 $cgi = new CGI; |
17 $cgi = new CGI; |
12 |
18 |
13 ####################### |
19 ####################### |
14 # Auswerten der Daten # |
20 # Auswerten der Daten # |
15 # des Web-Formulars # |
21 # des Web-Formulars # |
16 ####################### |
22 ####################### |
17 |
23 |
18 $feld1 = $cgi->param('Firma'); # FIXME: mueller & meier |
24 $feld1 = $cgi->param('Firma'); # FIXED |
19 $feld2 = $cgi->param('Name'); |
25 $feld2 = $cgi->param('Name'); |
20 $feld3 = $cgi->param('Test'); |
26 $feld3 = $cgi->param('Test'); |
21 |
27 $feld4 = $cgi->param('req'); |
22 #open( TEST, ">test" ) or die "Kann Handle nicht oeffnen!\n$!"; |
28 $feld1 =~ s/\&/\<26\>/g; |
23 #print TEST ("$feld1 ;:; $feld2 ;:; $feld3"); |
29 $feld1 =~ s/\=/\<3D\>/g; |
24 #close TEST; |
30 $feld1 =~ s/\%/\<25\>/g; |
|
31 $feld1 =~ s/\+/\<2B\>/g; |
|
32 $feld2 =~ s/\&/\<26\>/g; |
|
33 $feld2 =~ s/\=/\<3D\>/g; |
|
34 $feld2 =~ s/\%/\<25\>/g; |
|
35 $feld2 =~ s/\+/\<2B\>/g; |
|
36 $feld3 =~ s/\&/\<26\>/g; |
|
37 $feld3 =~ s/\=/\<3D\>/g; |
|
38 $feld3 =~ s/\%/\<25\>/g; |
|
39 $feld3 =~ s/\+/\<2B\>/g; |
|
40 $feld4 =~ s/\&/\<26\>/g; |
|
41 $feld4 =~ s/\=/\<3D\>/g; |
|
42 $feld4 =~ s/\%/\<25\>/g; |
|
43 $feld4 =~ s/\+/\<2B\>/g; |
|
44 $feld4 =~ s/\r\n/\n/g; |
|
45 open( TEST, ">test" ) or die "Kann Handle nicht oeffnen!\n$!"; |
|
46 print TEST ("$feld1 ;:; $feld2 ;:; $feld3 ;:; $feld4"); |
|
47 close TEST; |
25 my @Feldnamen = $cgi->param(); |
48 my @Feldnamen = $cgi->param(); |
26 |
49 |
27 ####################### |
50 ####################### |
28 # Senden der Daten # |
51 # Senden der Daten # |
29 # via HTTP-POST # |
52 # via HTTP-POST # |
30 ####################### |
53 ####################### |
31 |
54 |
32 $url = 'http://192.168.0.144/cgi-bin/receive'; |
55 $url = 'http://192.168.0.144/cgi-bin/receive'; |
33 $ua = LWP::UserAgent->new; |
56 $ua = LWP::UserAgent->new; |
34 $ua->env_proxy; |
57 $ua->env_proxy; |
35 $ua->timeout(10); |
58 $ua->timeout(20); |
|
59 $ua->show_progress; |
36 $req = HTTP::Request->new( "POST", $url ); |
60 $req = HTTP::Request->new( "POST", $url ); |
37 $req->header( 'Content-Type' => 'text/html' ); |
61 $req->header( 'Content-Type' => 'text/html' ); |
38 $req->content("Name=$feld1&Mail=$feld2&Test=$feld3"); |
62 $req->accept_decodable; |
|
63 $req->content("ID=$uid&Name=$feld1&Mail=$feld2&Test=$feld3&req=$feld4"); |
39 $ua->request($req); |
64 $ua->request($req); |
|
65 |
|
66 open( HTML1, ">/var/www/$uid" . "1.html" ); |
|
67 print HTML1 ( |
|
68 '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Download</title></head><body><p>Klicken Sie bitte auf den Link um ihre Datei zu Downloaden oder anzuzeigen.<br>Zum Speichern des Inhaltes klicken Sie den Link mit der rechten Maustaste an und wählen "Ziel speichern unter..."</p><p><a href="/download/' |
|
69 . $uid |
|
70 . '" type="application/octet-stream">Test</a></p></body></html>' ); |
|
71 close HTML1; |
|
72 |
|
73 open( HTML, ">/var/www/$uid.html" ); |
|
74 print HTML ( |
|
75 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"><html><head><title>Download</title><meta http_equiv=\"refresh\" content=\"10;URL=http://192.168.0.138/" |
|
76 . $uid |
|
77 . "1.html\"></head><script type=\"text/javascript\"> |
|
78 <!-- |
|
79 var homepage = 'http://192.168.0.138/" . $uid . "1.html'; |
|
80 var sekunden = 10; |
|
81 |
|
82 function countdownWeiterleitung() |
|
83 { |
|
84 sekunden--; |
|
85 document.getElementById('counter_span').innerHTML = sekunden; |
|
86 if ( !sekunden ) { |
|
87 document.location.href = homepage; |
|
88 } |
|
89 } |
|
90 |
|
91 window.setInterval('countdownWeiterleitung()', 1000); |
|
92 //--> |
|
93 |
|
94 </script><body><p>Ihr Download steht in kürze bereit!<br>Sie werden in <span id=\"counter_span\" class=\"dd\">10</span> sekunden automatisch Weitergeleitet.<br>Sollte die automatische Weiterleitung nicht funktionieren, klicken Sie bitte <a href=\"" |
|
95 . $uid |
|
96 . "1.html\">hier</a></p></body></html>" |
|
97 ); |
|
98 |
|
99 #print HTML ("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"><html><head><title>Download</title><meta http_equiv=\"refresh\" content=\"10;URL=http://192.168.0.138/$uid\1.html\"></head><script type=\"text/javascript\">function countDown(init){if (init || --document.getElementById( \"counter\" ).firstChild.nodeValue >0 )window.setTimeout(\"countDown()\",1000);};</script><body onload=\"countDown(true)\"><p>Ihr Download steht in kürze bereit!<br>Sie werden in <span id=\"counter\" class=\"dd\">10</span> sekunden automatisch Weitergeleitet.<br>Sollte die automatische Weiterleitung nicht funktionieren, klicken Sie bitte <a href=\"$uid\1.html\">hier</a></p></body></html>"); |
|
100 close HTML; |
|
101 |
|
102 # Test |
|
103 |
|
104 #$get = HTTP::Request->new( "GET", '192.168.0.144/cgi-bin/'.$uid ); |
40 |
105 |
41 ####################### |
106 ####################### |
42 # Erstellen einer # |
107 # Erstellen einer # |
43 # Feedback-Seite zum # |
108 # Feedback-Seite zum # |
44 # Test mit Weiter- # |
109 # Test mit Weiter- # |
48 print $cgi->header('CGI-Feedback'), |
113 print $cgi->header('CGI-Feedback'), |
49 $cgi->start_html( |
114 $cgi->start_html( |
50 -head => $cgi->meta( |
115 -head => $cgi->meta( |
51 { |
116 { |
52 -http_equiv => 'REFRESH', |
117 -http_equiv => 'REFRESH', |
53 -content => '5;URL=http://192.168.0.144/index.html' |
118 -content => "2;URL=http://192.168.0.138/$uid.html" |
54 } |
119 } |
55 ), |
120 ), |
56 -title => 'CGI-Feedback' |
121 -title => 'CGI-Feedback' |
57 ), |
122 ); |
58 $cgi->h1( 'CGI-Feedback vom Programm ', $cgi->i('send') ); |
123 |
|
124 # $cgi->h1 ('Testen wir mal'),"<br>",$cgi->i('Countdown: '); |
|
125 $cgi->h1( 'CGI-Feedback vom Programm ', $cgi->i('send') ); |
59 |
126 |
60 foreach my $Feld (@Feldnamen) { |
127 foreach my $Feld (@Feldnamen) { |
61 print $cgi->strong('Feldname: '), |
128 print $cgi->strong('Feldname: '), |
62 $Feld, |
129 $Feld, |
63 $cgi->strong(', Inhalt: '), |
130 $cgi->strong(', Inhalt: '), |
64 $cgi->param($Feld), "<br>"; |
131 $cgi->param($Feld), "<br>"; |
65 } |
132 } |
66 print $cgi->end_html(); |
133 print $cgi->i($uid), $cgi->end_html; |
|
134 |
|
135 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time); |
|
136 if ($min >= 55){ |
|
137 $min +=5; |
|
138 $min -=60; |
|
139 $hour +=1; |
|
140 } |
|
141 else { |
|
142 $min +=5; |
|
143 } |
|
144 open (WRITE, "|at $hour:$min") or die; |
|
145 print WRITE "rm /var/www/$uid*\n"; |
|
146 print WRITE "rm /var/www/download/$uid*\n"; |
|
147 close WRITE; |
67 __END__ |
148 __END__ |