htdocs/cgi-bin/send
changeset 11 bd470c2d0a0a
parent 10 0e2b0e64bc21
child 14 5a256b08fdc6
equal deleted inserted replaced
10:0e2b0e64bc21 11:bd470c2d0a0a
     8 use Net::SCP;
     8 use Net::SCP;
     9 use Template;
     9 use Template;
    10 use Cwd;
    10 use Cwd;
    11 use FindBin qw($RealBin);
    11 use FindBin qw($RealBin);
    12 use Data::UUID;
    12 use Data::UUID;
    13 
    13 my $requ;
    14 my $cgi = new CGI;
    14 my $cgi = new CGI;
    15 my $tt = Template->new({INCLUDE_PATH => "$RealBin/../templates"})
    15 my $tt = Template->new({INCLUDE_PATH => "$RealBin/../templates"})
    16    or die "Can't create template object: $Template::ERROR\n";
    16    or die "Can't create template object: $Template::ERROR\n";
    17 
    17 
       
    18 my $reset='<input type="reset">';
    18 if (!$cgi->param("_submit")) {
    19 if (!$cgi->param("_submit")) {
    19 
    20 
    20    print CGI::header(-type => "text/html", -charset => "utf-8");
    21    print CGI::header(-type => "text/html", -charset => "utf-8");
    21 
    22 
    22    $tt->process("index.html");
    23    $tt->process("index.html",{
       
    24          reset => $reset,
       
    25    });
    23    exit 0;
    26    exit 0;
    24 }
    27 }
    25 
    28 
    26 # formular wurde ausgefuellt, wir muessen es pruefen und evtl. noch mal
    29 # formular wurde ausgefuellt, wir muessen es pruefen und evtl. noch mal
    27 # anzeigen
    30 # anzeigen
    28 
    31 
    29 # CHECK
    32 # CHECK
    30 
    33 my @req =$cgi->param("req");
    31    my (%error, $ffarbe, $ofarbe, $mfarbe, $rfarbe);
    34 foreach (@req){
    32    if ($cgi->param("firma") eq ''){
    35    s/\r\n/\<n\>/g;
    33       $error{firma} = "missing company";
    36 }
    34       $ffarbe='rot';
    37 $requ=join(" ",@req);
    35    }
    38 open (OUT,">req");
    36    else{$ffarbe='black'}
    39 print OUT "@req";
    37    if ($cgi->param("mail") eq ''){
    40 close OUT;
    38       $error{mail}= "missing mail";
    41 open (IN,"<req");
    39       $mfarbe='red';
    42 my @req2=<IN>;
    40    }
    43 close IN;
    41    elsif ($cgi->param("mail") !~ m/^[a-zA-Z0-9\.-_]*\@\w+\.\w{2,}/){
    44 my (%error, $ffarbe, $ofarbe, $mfarbe, $rfarbe);
    42       $error{mail}="no valid mail";
    45 if ($cgi->param("firma") eq ''){
    43       $mfarbe='red';
    46    $error{firma} = "missing company";
    44    }
    47    $ffarbe='red';
    45    else{$mfarbe='black'}
    48 }
    46    if ($cgi->param("ort") eq ''){
    49 else{$ffarbe='black'}
    47       $error{ort}= "missing city";
    50 if ($cgi->param("mail") eq ''){
    48       $ofarbe='red';
    51    $error{mail}= "missing mail";
    49    }
    52    $mfarbe='red';
    50    else{$ofarbe='black'}
    53 }
    51    if ($cgi->param("req") eq ''){
    54 elsif ($cgi->param("mail") !~ m/^[a-zA-Z0-9\.-_]*\@\w+\.\w{2,}/){
    52       $error{req}="missing request";
    55    $error{mail}="no valid mail";
    53       $rfarbe='red';
    56    $mfarbe='red';
    54    }
    57 }
    55    else{$rfarbe='black'}
    58 else{$mfarbe='black'}
    56    if (%error) {
    59 if ($cgi->param("ort") eq ''){
    57       print CGI::header(-type => "text/html", -charset => "utf-8");
    60    $error{ort}= "missing city";
    58       $tt->process("index.html", {
    61    $ofarbe='red';
    59             dump => $cgi->Dump(),
    62 }
    60             now => time(),
    63 else{$ofarbe='black'}
    61             error => \%error,
    64 if ($cgi->param("req") eq ''){
    62             firma => $cgi->param("firma"),
    65    $error{req}="missing request";
    63             ffarbe=>$ffarbe,
    66    $rfarbe='red';
    64             mail => $cgi->param("mail"),
    67 }
    65             mfarbe=>$mfarbe,
    68 else{$rfarbe='black'}
    66             ort => $cgi->param("ort"),
    69 if (%error) {
    67             ofarbe=>$ofarbe,
    70    print CGI::header(-type => "text/html", -charset => "utf-8");
    68             req => $cgi->param("req"),
    71    $tt->process("index.html", {
    69             rfarbe=>$rfarbe,
    72          dump => $cgi->Dump(),
    70       }) or die $tt->error();
    73          now => time(),
    71       exit 0;
    74          error => \%error,
    72    }
    75          firma => $cgi->param("firma"),
       
    76          ffarbe=>$ffarbe,
       
    77          mail => $cgi->param("mail"),
       
    78          mfarbe=>$mfarbe,
       
    79          ort => $cgi->param("ort"),
       
    80          ofarbe=>$ofarbe,
       
    81          req => $cgi->param("req"),
       
    82          rfarbe=>$rfarbe,
       
    83    }) or die $tt->error();
       
    84    exit 0;
       
    85 }
    73 
    86 
    74 # alles ist ok
    87 # alles ist ok
    75 
    88 
    76 my ($uid, $url,  $ua,  $ub, $req);
    89 my ($uid, $url,  $ua,  $ub, $req);
    77 
    90 
    78 $ub=new Data::UUID;
    91 $ub=new Data::UUID;
    79 $uid=$ub->create_str;
    92 $uid=$ub->create_str;
    80 open (UUID, ">>UUID") or die "$!\n";
    93 open (UUID, ">>UUID") or die "$!\n";
    81 print UUID $uid;
    94 print UUID "$uid\n";
    82 close UUID;
    95 close UUID;
    83 #######################
    96 #######################
    84 # Auswerten der Daten #
    97 # Auswerten der Daten #
    85 # des Web-Formulars   #
    98 # des Web-Formulars   #
    86 #######################
    99 #######################
    87 
       
    88 my %field = (
   100 my %field = (
    89       firma => $cgi->param('firma'),
   101       firma => $cgi->param('firma'),
    90       mail => $cgi->param('mail'),
   102       mail => $cgi->param('mail'),
    91       ort => $cgi->param('ort'),
   103       ort => $cgi->param('ort'),
    92       req => $cgi->param('req'),
   104 #      req => $cgi->param('req'),
    93 );
   105 );
    94 
   106 $"=" .:. ";
    95 foreach (values %field) {
   107 foreach (values %field) {
    96    s/\&/\<26\>/g;
   108    s/\&/\<26\>/g;
    97    s/\=/\<3D\>/g;
   109    s/\=/\<3D\>/g;
    98    s/\%/\<25\>/g;
   110    s/\%/\<25\>/g;
    99    s/\+/\<2B\>/g;
   111    s/\+/\<2B\>/g;
   100    s/\r\n/\n/g;
   112    s/\r\n/\n/g;
   101 }
   113 }
   102 my $test='test';
   114 my $test='test';
   103 open( TEST,"> $test" ) or die "Kann $test nicht öffnen: $!\n";
   115 open( TEST,"> $test" ) or die "Kann $test nicht öffnen: $!\n";
   104 foreach (sort keys %field) {
   116 foreach (sort keys %field) {
   105    print "$_: $field{$_}\n";
   117    print TEST "$_: $field{$_}\n";
   106 }
   118 }
       
   119 print TEST "@req\n";
       
   120 print TEST " .:. @req2\n";
   107 close TEST;
   121 close TEST;
   108 my @Feldnamen = $cgi->param();
   122 my @Feldnamen = $cgi->param();
   109 
   123 
   110 #######################
   124 #######################
   111 # Senden der Daten    #
   125 # Senden der Daten    #
   118 $ua->timeout(20);
   132 $ua->timeout(20);
   119 $ua->show_progress;
   133 $ua->show_progress;
   120 $req = HTTP::Request->new( "POST", $url );
   134 $req = HTTP::Request->new( "POST", $url );
   121 $req->header( 'Content-Type' => 'text/html' );
   135 $req->header( 'Content-Type' => 'text/html' );
   122 $req->accept_decodable;
   136 $req->accept_decodable;
   123 $req->content("ID=$uid&Name=$field{firma}&Mail=$field{mail}&Test=$field{ort}&req=$field{req}");
   137 $req->content("id=$uid&firma=$field{firma}&mail=$field{mail}&ort=$field{ort}&req=$requ");
   124 $ua->request($req);
   138 $ua->request($req);
   125 
   139 
   126 print CGI::header(-type => "text/html", -charset => "utf-8");
   140 print CGI::header(-type => "text/html", -charset => "utf-8");
   127 $tt->process("wait.html",{
   141 $tt->process("wait.html",{
   128       uid => $uid
   142       uid => $uid
   129    }) or die $tt->error;
   143    }) or die $tt->error;
       
   144 exit 0;
   130 
   145 
   131 unlink grep { -M > 3/(24*36) } glob("/var/www/tmp/*");
   146 unlink grep { -M > 3/(24*36) } glob("/var/www/tmp/*");
   132 
   147 
   133 __END__
   148 __END__
   134 # Test
   149 # Test