Hallo Zusammen,
kann mir jemand sagen was bei dieser CGI Script Zeile falsch ist?
# Möchten Sie einen Zugriffszähler auf Ihrem Gästebuch? - 1 = JA
$counter = 1; # 1 = JA; 0 = NEIN
(Der OptiPerl meldet als Warnings:
Name"main:counter" used only once: possible typo at line 95)
Kann es sein das $counter die einzige Variable ist?
Oder ist es eine Pfadangabe die fehlt? Es ist in der count.log kein einziger Eintrag. Ich habe aber den richtigen Pfad angegeben weil der Pfad zu z.B. guest.log auch stimmt, und sich darin die eingegebenen Einträge zu finden sind. Ich hoffe es kann mir jemand helfen, da ich fast am Verzweifeln bin.
Gruß, Waldläufer
Homepage selbermachen 7.846 Themen, 35.563 Beiträge
Hallo Zaphod,
erst mal Danke für die schnelle Antwort. Ich habe keinen Tipp Fehler gefunden. Ich stelle mal die ganzen Anweisungen für das Gästbuch ein, vielleicht fällt ja jemandem was auf. Es funktioniert immer noch nicht das die Gästebucheinträge in der count.log auflaufen und die gezählten Werte ausgelesen werden.
Wenn nicht, dann werde ich mich nach einem anderem Gästbuch umsehen müssen. Also evtl findet ja jemand was.
Gruß,
Waldläufer
# Geben Sie den Pfad zur Datei guest.log an
# Diese Datei beinhaltet alle Einträge zu Ihrem Gästebuch
$guest_log = "guest.log";
# Geben Sie den Pfad zu dem Gästebuch-Script an
$guest_cgi = "http://localhost/cgi-bin/guestbook.cgi";
# Benutzen Sie diese Sektion für Meta-TAGS
$meta = "
";
# Geben Sie hier ihre BODY-Informationen an
$body = "
# Geben Sie hier den Kopf Ihrer Gästebuches an.
# Dies sind die ersten Zeilen, die in Ihrem Gästebuch angezeigt werden.
$top_of_page = "
NIKLAN´s Gaestebuch
Tragen Sie sich in mein Gästebuch ein.
";
# Geben Sie hier die Informationen für den Fuss Ihres Gästebuches an.
$bottom_of_page = "
Ins Deutsche übersetzt und erhalten bei Irgendwer
# Möchten Sie, dass die eMail-Adresse des Posters als Hyperlink dargestellt wird? 1 = JA
$hyper_link = 1; # 1 = JA; 0 = NEIN
# Dürfen die Postings HTML-Code enthalten? 1 = JA
$allow_html = 1; # 1 = JA; 0 = NEIN
# Wie sollen die Einträge voneinander getrennt sein? 1 =
(Absatz) 0 =
(Linie)
$seperate = 1; #1 =
0 =
# Möchten Sie einen Zugriffszähler auf Ihrem Gästebuch? - 1 = JA
$counter = 1; # 1 = JA; 0 = NEIN
# Geben Sie den Pfad zur Datei count.log an
$count_log = "http://localhost/cgi-bin/count.log";
# Im folgenden werden Schriftfarben und -grösse, wie auch die Counterinformationen festgelegt.
$font_color = "";
$font_size = "";
$center = 1;
$before = "Sie sind Besucher Nummer ";
$after = "auf meiner Gästebuchseite.";
#############################################
# Eingaben aufnehmen
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
# Splitten der Namens-Variablen
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
# Webunspezifische Zeichen filtern
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
if ($allow_html != 1) {
$value =~ s/]|\n)*>//g;
}
$FORM{$name} = $value;
}
if ($FORM{'new'}){
&no_name unless $FORM{'name'};
&no_comments unless $FORM{'comments'};
&no_email unless $FORM{'emailadd'};
&no_email unless $FORM{'emailadd'};
&no_valid_email unless (($FORM{'emailadd'} eq '') || (($FORM{'emailadd'} ne '') &&
($FORM{'emailadd'} =~ /\w*@\w*/)));
}
&GetFileLock;
print "Content-Type: text/html\n\n";
if ($FORM{'new'}){ #Nun haben wir einen neuen Eintrag
open(GUESTLOG, "$guest_log");
@FILE = \n";
if ($center eq '1'){
print "";
}
print "
$bottom_of_page";
}
########################
sub no_comments {
print "Content-type: text/html\n\n";
print "\n";
print "
Sie haben das Kommentarfeld leer gelassen.
\n";print " Benutzen Sie bitte den BACK BUTTON um zurückzukehren\n";
print " und es erneut zu versuchen.
\n";
print "\n\n";
exit;
}
sub no_name {
print "Content-type: text/html\n\n";
print "
print "
Sie haben vergessen das Namensfeld auszufüllen.
\n";print " Benutzen Sie bitte den BACK BUTTON um zurückzukehren\n";
print " und es erneut zu versuchen.
\n";
print "\n\n";
exit;
}
sub no_email {
print "Content-type: text/html\n\n";
print "
print "
Sie haben das Feld mit der eMail-Adresse leer gelassen
\n";print " Benutzen Sie bitte den BACK BUTTON um zurückzukehren\n";
print " und es erneut zu versuchen.
\n";
print "\n\n";
exit;
}
# Subroutine für Fehler in der eMail-Adresse
sub no_valid_email
{
print "Content-type: text/html\n\n";
print "
print "\n";
print "
Falsche eMail-Adresse
\n";print "Sie müssen eine korrekte eMail-Adresse angeben.\n";
print " Benutzen Sie bitte den BACK BUTTON um zurückzukehren\n";
print " und es erneut zu versuchen.
\n";
print "\n";
exit;
}
if ($FORM{'new'} && $mail eq '1') {
open (MAIL, "|$mailprog $recipient") || die "Can't open $mailprog!\n";
print MAIL "Reply-to: $FORM{'emailadd'} ($FORM{'name'})\n";
print MAIL "From: $FORM{'emailadd'} ($FORM{'name'})\n";
print MAIL "Subject: $subject\n";
print MAIL "$FORM{'comments'}\n";
close (MAIL);
}
if ($FORM{'new'} && $reciept eq '1') {
$emailadd = $FORM{'emailadd'};
open (MAIL, "|$mailprog $emailadd") || die "Can't open $mailprog!\n";
#print MAIL "Reply-to: $recipient\n";
print MAIL "From: $recipient ($title)\n";
print MAIL "Subject: $reply_subject\n";
print MAIL "$mail_body\n";
close (MAIL);
}
&ReleaseFileLock;
#######################################################################
# FileLock #
#######################################################################
sub GetFileLock {
local ($lock_file) = 'file.lock';
local ($endtime);
$endtime = 10;
$endtime = time + $endtime;
# Wir setzen die Endzeit auf 10 Sekunden wartezeit
while (-e $lock_file && time # Do Nothing
}
open(LOCK_FILE, ">$lock_file");
# flock(LOCK_FILE, 2); # 2 exclusively locks the file
} # ende von FileLock
#######################################################################
# ReleaseFileLock #
#######################################################################
sub ReleaseFileLock {
local ($lock_file) = 'file.lock';
# 8 unlocks the file
# flock(LOCK_FILE, 8);
close(LOCK_FILE);
unlink($lock_file);
} # end of ReleaseFileLock
exit;