htdocs/cgi-bin/send_n
changeset 7 2f11b54a69fe
parent 6 892a4fac1939
child 8 73d827714711
equal deleted inserted replaced
6:892a4fac1939 7:2f11b54a69fe
     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&auml;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&uuml;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&uuml;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__