# !/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

"; # print ""; # 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

"; print ""; 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

"; print ""; 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

"; print ""; 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

"; print ""; 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=; #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 $FORM{'lecture'}

Mathematik für Studierende der Biologie und des Lehramtes Chemie im Wintersemester 2016/17

Sie haben sich mit folgenden Daten registiert:

Vorname: $FORM{'fname'}

Nachname: $FORM{'lname'}

Geburtsdatum: $FORM{'dob'}

Matrikelnummer: $FORM{'matr'}

Studiengang: $FORM{'ziel'} $FORM{'fach'}

Email: $FORM{'email'}

}; print $html;