1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
# !/usr/bin/perl -w use strict; use CGI::Carp qw(warningsToBrowser fatalsToBrowser); my $path = '/exports/ag/ag-eschmeier/subscribe/ws1617/files/'; my $trenner = "#"; ########################################################### # Read input ########################################################### read (STDIN, my $buffer, $ENV{'CONTENT_LENGTH'}); my @pairs = split(/&/,$buffer); my %FORM; foreach my $pair (@pairs) { my ($name,$value)=split(/=/,$pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $value =~ s/~!/ ~!/g; $FORM{$name} = $value; } ##################################################################### # Pruefen der uebergeben Parameter ##################################################################### #if ( $FORM{'lecture'} eq "-" or $FORM{'term'} eq "-" ) { # print "Content-type:text/html\n\n"; # print "Error! You did not choose a lecture and/or term<p>"; # print "<INPUT TYPE=BUTTON VALUE=\"Back\" onClick=\"history.back()\">"; # exit 0; #} if ( $FORM{'lname'} eq "" or $FORM{'fname'} eq "" ) { print "Content-type:text/html\n\n"; print "Error! Your surname and/or your given name is empty<p>"; print "<INPUT TYPE=BUTTON VALUE=\"Back\" onClick=\"history.back()\">"; exit 0; } if ( $FORM{'dob'} !~ /(\d\d)\.(\d\d)\.(\d{4})/) { print "Content-type:text/html\n\n"; print "Your birthday is not in the format DD.MM.YYYY<p>"; print "<INPUT TYPE=BUTTON VALUE=\"Back\" onClick=\"history.back()\">"; exit 0; } if ( $FORM{'matr'} !~ /^[0-9]*$/ or $FORM{'matr'} eq "" ) { print "Content-type:text/html\n\n"; print "Your student id is not valid<p>"; print "<INPUT TYPE=BUTTON VALUE=\"Back\" onClick=\"history.back()\">"; exit 0; } if ( $FORM{'email'} !~ /^([a-zA-Z0-9][a-zA-Z_0-9-\.]*)(\@)([a-zA-Z0-9][a-zA-Z_0-9-\.]*[a-zA-Z0-9])(\.)([a-zA-Z0-9]*)$/) { print "Content-type:text/html\n\n"; print "Your e-mail-address is not valid<p>"; print "<INPUT TYPE=BUTTON VALUE=\"Back\" onClick=\"history.back()\">"; exit 0; } ##################################################################### # Bilde anhand des Namens der Vorlesung einen verkuertzten Dateinamen ##################################################################### my $filename = $path.$FORM{'lecture'}."_".$FORM{'term'}.".dat"; ########################################################### # Read internal registration files ########################################################### #open(SGI,"<$dat") || print $internal_error_msg ; #my @studg=<SGI>; #close SGI; # # #my $oldgroup=-1; #foreach(@studg) # { # my @tmp=split(/\#/,$_); # if ($tmp[0] == $FORM{'matr'} && $tmp[1] eq $FORM{'dob'}) # { # $oldgroup=$tmp[2]; # } # } #my $time = time; my($sec,$min,$hour,$mday,$mon,$year,$wday, $yday,$isdst)=localtime(time); #my $time = sprintf "%02d.%02d.%04d %02d:%02d:%02d", $mday,$mon+1,$year+1900,$hour,$min,$sec; my $time = sprintf "%04d%02d%02d%02d%02d%02d",$year+1900,$mon+1,$mday,$hour,$min,$sec; ########################################################### # Log registration data ########################################################### #open(SI,">>$filename") or die "$! $?\n";; #close SI; ###print $filename; open(OUT,">>$filename") or die "$!"; print OUT $time.$trenner.$FORM{'matr'}.$trenner.$FORM{'dob'}.$trenner.$FORM{'fname'}.$trenner .$FORM{'lname'}.$trenner.$FORM{'gender'}.$trenner.$FORM{'email'}.$trenner.$FORM{'ziel'}.$trenner.$FORM{'fach'} .$trenner.$FORM{'prio1'}.$trenner.$FORM{'prio2'}.$trenner.$FORM{'prio3'}."\n"; close OUT; ########################################################### # info for user ########################################################### my $html = qq{Content-Type: text/html <HTML> <HEAD> <TITLE>$FORM{'lecture'}</TITLE> </HEAD> <BODY> <H4>Mathematik für Studierende der Biologie und des Lehramtes Chemie im Wintersemester 2016/17</H4> <P> <p class=inFormHeaderSmall>Sie haben sich mit folgenden Daten registiert:</p> <p class=inFormHeader>Vorname: $FORM{'fname'}</p> <p class=inFormHeader>Nachname: $FORM{'lname'}</p> <p class=inFormHeader>Geburtsdatum: $FORM{'dob'}</p> <p class=inFormHeader>Matrikelnummer: $FORM{'matr'}</p> <p class=inFormHeader>Studiengang: $FORM{'ziel'} $FORM{'fach'}</p> <p class=inFormHeader>Email: $FORM{'email'}</p> </BODY> </HTML> }; print $html;