zur person
ordination
wirbelsäulen- stützpunkt-wien
angebote
physiotherapie
facharzt/presse
med. wissen
links
impressum
#!/usr/bin/perl ##################################################################### # gbook.cgi # # by Patrick Bernau, Version 0.1 (1999-09-13) # Version 1.0 (2000-02-11) # Version 1.1 (2000-04-26) # supports foreign languages. # # usage: use in HTML form, can be GET or POST with use of # gabe-lib.pl # # form fields: # action show, sign or signform # name text field -- name of signer # location text field -- location of signer # url text field -- homepage-url of signer # email text field -- email address of signer # body textarea -- body of message # firstent text field -- first entry ##################################################################### # name of data directory $datadir = "gbook"; # name of this script $scrnm = "gbook.cgi"; # templates $before = `/bin/cat gbefore.ht`; $after = `/bin/cat gafter.ht`; $middle = `/bin/cat gmiddle.ht`; $entries = `/bin/cat gentry.ht`; $signform = `/bin/cat gform.html`; # insert
's instead of newlines in body? $insertbr = 1; # replace <> by <> ? $denyhtml = 1; # make homepage urls and email addresses links? $makelinkhp = 1; $makelinkmail = 1; # path to date command $dt = "date"; # time zone relative to gmt $timez = +0; # entries per page $entppg = 100; # language $language = "english"; # english or deutsch $notgvn = "nicht gegeben"; $next = ""; $prev = ""; $sign = ""; $back = ""; $missing = "Etwas fehlt ..."; $name_message = "Name und Text sind unbeding noetig"; $please_go = "Bitte versuchen"; $again = "Sie es noch einmal."; $empty = "Dieses Gaestebuch ist noch leer."; if ($language eq "deutsch") { $notgvn = "nicht angegeben"; $next = "weiter"; $prev = "zurück"; $sign = "Unterschreiben!"; $back = "zurück"; $missing = "Aber bitte vollständig ..."; $name_message = "Name und Eintrag hätte ich schon gerne."; $please_go = "Bitte geh"; $again = "und probier's nochmal."; $empty = "Keine Einträge vorhanden."; } ##################################################################### ## code begins here require "gabe-lib.pl"; &ParseForm(); $cntfile = "$datadir/gbk.cnt"; $action = $data{'action'}; $name = $data{'name'}; $location = $data{'location'}; $url = $data{'url'}; $email = $data{'email'}; $body = $data{'body'}; $firstent = $data{'firstent'}; print "Content-type: text/html\n\n"; # Get nr. of messages if (-s $cntfile) { open (CNT, "<$cntfile"); $msgsnr=; close (CNT); } else { $msgsnr=0; } if ($action eq "signform") { print "$signform"; exit (1); } if ($action eq "sign") { if (!$body || !$name) { print "$before\n"; print "$missing\n"; print "

\n$name_message. $please_go "; print "$back $again\n"; print "$after"; exit(1); } $msgsnr++; # generating time string $hour = `$dt -u +\"%k\"`; $hour = $hour + $timez; $date = `$dt -u +\"%y-%m-%d\"`; $minute = `$dt -u +\".%M\"`; chomp $date; chomp $minute; $date .= " / " . $hour.$minute; open (ENTRY, ">$datadir/$msgsnr.ent"); print ENTRY "$date\n"; print ENTRY "$name\n"; print ENTRY "$location\n"; print ENTRY "$url\n"; print ENTRY "$email\n"; print ENTRY "IP: $ENV{'REMOTE_ADDR'}\n"; print ENTRY "FwdFor: $ENV{'HTTP_X_FORWARDED_FOR'}\n"; print ENTRY "$body\n"; close (ENTRY); open (CNT, ">$cntfile"); print CNT "$msgsnr\n"; close (ENTRY); } # get first number surely $firstent = $msgsnr if (!$firstent); # print header print "$before\n"; print "

\n"; print "$sign\n"; print "$middle\n
\n\n"; # print entries $printed = 0; for ($curnr = $firstent + 0; $curnr > 0 && $printed < $entppg; $curnr--) { if (-s "$datadir/$curnr.ent") { open (ENTRY, "<$datadir/$curnr.ent"); $date = ; $name = ; $location = ; $url = ; $email = ; $ip = ; $fwd = ; @body = ; close (ENTRY); chomp $date; chomp $name; chomp $url; chomp $location; chomp $url; chomp $email; $name =~ s/Ä/Ä/g; $name =~ s/ä/ä/g; $name =~ s/Ö/Ü/g; $name =~ s/ö/ö/g; $name =~ s/Ü/ö/g; $name =~ s/ü/ü/g; $name =~ s/ß/ß/g; $location =~ s/Ä/Ä/g; $location =~ s/ä/ä/g; $location =~ s/Ö/Ü/g; $location =~ s/ö/ö/g; $location =~ s/Ü/ö/g; $location =~ s/ü/ü/g; $location =~ s/ß/ß/g; foreach $substr (@body) { $substr =~ s/Ä/Ä/g; $substr =~ s/ä/ä/g; $substr =~ s/Ö/Ö/g; $substr =~ s/ö/ö/g; $substr =~ s/Ü/Ü/g; $substr =~ s/ü/ü/g; $substr =~ s/ß/ß/g; } if ($denyhtml) { $name =~ s//>/g; $location =~ s//>/g; foreach $substr (@body) { $substr =~ s//>/g; } } if ($insertbr) { foreach $substr (@body) { $substr =~ s/\n/
\n/g; $substr =~ s/\cM\n/
\n/g; } } } else { next; } $ent = $entries; $ent =~ s/%%n/$name/g; if ($location) { $ent =~ s/%%l/$location/g; } else { $ent =~ s/%%l/$notgvn/g; } $ent =~ s/%%d/$date/g; if (($url) && ($url ne "http://")) { if ($makelinkhp) { $url2 = "$url"; } else { $url2 = $url; } } else { $url2 = $notgvn; } $ent =~ s/%%u/$url2/g; if ($email) { if ($makelinkmail) { $email2 = "$email"; } else { $email2 = $email; } } else { $email2 = $notgvn; } $ent =~ s/%%m/$email2/g; $ent =~ s/%%b/@body/g; print ("$ent\n$middle\n\n"); $printed++; } print ("

$empty
$middle\n\n") if (!$printed); # print footer print ("

\n"); if ($firstent < $msgsnr) { $firstentbk = $firstent + $entppg; $firstentbk = $msgsnr if ($firstentbk > $msgsnr); print ("$prev\n"); } else { print ("$prev "); } print "- $sign -"; if ($curnr > 0) { print ("\n$next\n

\n\n"); } else { print (" $next\n
\n\n"); } print ("

\n"); print ("$after\n");