#!/sw/bin/perl ## ## Script to automatically insert hyperlinks to user pages ## into a web page via a registration form ## ## Copyright (C) 1996 by Steffen Beyer ## ## ## Version history: ## ## Version Date Name What's new ## ------- -------- -------------------- ----------------------------------- ## 1.0.0 20.11.96 Steffen Beyer First release ## 1.1.0 21.11.96 Steffen Beyer Check for uniqueness, parametrized ## $self = $0; $self =~ s!^.*/!!; ## ## Configuration: ## $name[1] = 'autor'; $name[2] = 'url'; $name[3] = 'link'; $name[4] = 'rubrik'; for ($i = 1; $i <= $#name; $i++) { $valid_name{$name[$i]} = $i; $value[$i] = ''; } $item[1] = 'user'; $item[2] = 'work'; $item[3] = 'grps'; $item[4] = 'proj'; $item[5] = 'sect'; $item[6] = 'sdm'; $item[7] = 'misc'; for ($i = 1; $i <= $#item; $i++) { $valid_item{$item[$i]} = $i; } $text{$item[1]} = 'Das müsst Ihr unbedingt sehen!'; $text{$item[2]} = 'Fachliches'; $text{$item[3]} = 'Arbeitskreise und Gruppen'; $text{$item[4]} = 'Projekte und Projekt-Steckbriefe'; $text{$item[5]} = 'Bereiche, Geschäftsbereiche und -stellen'; $text{$item[6]} = 'sd&m allgemein'; $text{$item[7]} = 'Sonstiges'; ## ## Global variables: ## $exception = ''; chop($date = `/bin/date +'%d.%m.%y %H:%M:%S'`); ## ## Subroutines: ## sub get_input { my(@pairs,$pair,$var,$val); @pairs = split(/&/, $ENV{'QUERY_STRING'}); foreach $pair (@pairs) { ($var, $val) = split(/=/, $pair); # $val =~ s/%E4/ae/g; # $val =~ s/%C4/Ae/g; # $val =~ s/%F6/oe/g; # $val =~ s/%D6/Oe/g; # $val =~ s/%FC/ue/g; # $val =~ s/%DC/Ue/g; # $val =~ s/%DF/ss/g; $val =~ s/\+/ /g; $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $val =~ s/\s+/ /g; $val =~ s/^\s+$//; unless ($valid_name{$var}) { $exception = "Die Übergabe-Parameter enthalten einen unbekannten Variablennamen!"; return 0; } if (($valid_name{$var} == 4) && (! $valid_item{$val})) { $exception = "Die Übergabe-Parameter enthalten eine unbekannte Rubrik!"; return 0; } $value[$valid_name{$var}] = $val; # avoid "eval" with unsafe $val! } return 1; } sub print_form { print <<"VERBATIM"; Content-type: text/html; charset="iso-8859-1"
"$value[3]"
wurde erfolgreich in der Rubrik
"$text{$value[4]}"
eingehängt:
|
| $value[3] | ($value[1]) | $date |
$value[2]
ist in der Rubrik
"$text{$value[4]}"
bereits vorhanden!,; return 0; } } unless (close(READ)) { $exception = "Interner Fehler: Kann die Datei '$file' nicht ordnungsgemäß schließen!"; return 0; } if (-e "$file.bak") { $exception = "Interner Fehler: Die Datei '$file.bak' existiert bereits!"; return 0; } unless (rename($file, "$file.bak")) { $exception = "Interner Fehler: Kann die Datei '$file' nicht in '$file.bak' umbenennen: $!"; return 0; } unless (open(WRITE, ">$file")) { $exception = "Interner Fehler: Kann die Datei '$file' nicht zum Schreiben öffnen: $!"; return 0; } print WRITE <<"VERBATIM";