gæstebog
Hvad er der galt her, den sætter ikke tingene ind på den pågældende side!#!/usr/bin/perl
# std gæstebog
############### Overordnede variabler ####################
# Relatv sti fra script til gbog.pl skal kun ændres, hvis du flytter gbog.pl eller gbog.html
$gbog = \"diskoteker.htm\";
# URL til takke side - hvis den eftlades uændret stilles skribenter tilbage til gæstebogen ...
$takkeside = \"diskoteker.htm\";
############### Kald af Subrutiner ####################
&RYD_OP;
&SKRIV;
&TAK;
########### Modtag sorter og check input #################
sub RYD_OP {
read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(\"C\", hex($1))/eg;
$FORM{$name} = $value; #Efter denne linje er $FORM{\'feltnavn\'} = indtastet værdi i feltet \"feltnavn\"
}
# Gør indkomne data nemmere at arbejde med
$overskrift = \"$FORM{\'overskrift\'}\" ;
$email = \"$FORM{\'email\'}\" ;
$navn = \"$FORM{\'navn\'}\" ;
$tekst = \"$FORM{\'tekst\'}\" ;
# check af eventuel email adresse
if ($email) {
unless($FORM{\'email\'} =~ /^[^\\@]+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$/) {
print (\"Content-type: text/html\\n\\n\");
print \"Fejl i email adresse. Prøv igen<BR><BR>Brug browserens tilbageknap ...\";
exit;
}
}
# Drab på html-koder og tegn, der kan forstyrre gbog.pl
$tekst =~ s/\\\"/\\\"\\;/g;
$tekst =~ s/\\\'/\\&\\#39/g;
$tekst =~ s/\\[/\\<\\;/g;
$tekst =~ s/\\]/\\>\\;/g;
$tekst =~ s/\\n/<br>/g;
# checker om de tre krævede felter er udfyldt
if ((!$overskrift) || (!$navn) || (!$tekst)) {
&MANGLER_INDTASTNING;
}
}
############### Skriv nyt indlæg i $gbog ##################
sub SKRIV {
open (GL_BOG, \"$gbog\") ;
@indhold = <GL_BOG>;
close(GL_BOG);
$kontrol = \"Q\" ;
open (NY_BOG, \">$gbog\") || &FEJL;
foreach $linje (@indhold) {
if ($linje =~ /<!-- nyt indlæg -->/){
print NY_BOG \"<!-- nyt indlæg -->\\n\";
print NY_BOG \"<h4>$overskrift<br><br></h4>\\n\";
if ($email){
print NY_BOG \"<A href=\\\"mailto:$email\\\">$navn</A>\' diskoteks forslag er: <br><br>\\n\";
}
else {
print NY_BOG \"$navn \' diskoteks forslag er: <br><br>\\n\";
}
print NY_BOG \"$tekst<br><hr noshade>\\n\";
}
else {
print NY_BOG \"$linje\";
}
}
close(NY_BOG);
}
################ Send bruger til $takkeside ###############
sub TAK {
print \"Location: $takkeside\\n\\n\";
}
######### Fejlmeddelelse ved forkert indtastning ##########
sub MANGLER_INDTASTNING {
print (\"Content-type: text/html\\n\\n\");
print \"<BR><BR>\";
print \"Du mangler at udfylde et eller flere af følgende felter:<br>\";
print \"diskoteks navn, navn eller Vurdering<BR><BR>\";
print \" - klik på browserens \'tilbage\'-knap og prøv igen\";
exit;
}
################ Generel fejl-meddelelse ##################
sub FEJL {
print (\"Content-type: text/html\\n\\n\");
print \"Fejl - desværre ... Prøv tilbage knappen ! <br>Hvis denne fejl fortsætter kontakt mig venligst på <a href=mailto:mnv@sol.dk>mnv@sol.dk</a>.\";
exit;
}