Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Fehler von CGI Befehl

waldläufer / 2 Antworten / Baumansicht Nickles

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

bei Antwort benachrichtigen
Zaphod waldläufer „Fehler von CGI Befehl“
Optionen
Kann es sein das $counter die einzige Variable ist?
Das kann man nur beantworten, wenn man das ganze Script kennt. Hat aber nichts mit der Fehlermeldung zu tun ...
(Der OptiPerl meldet als Warnings:
Name"main:counter" used only once: possible typo at line 95)

Das bedeutet, dass die Bezeichnug "counter" nur einmal benutzt wird (vielleicht fehlt eine Deklaration der Variablen?), möglicherweise liegt ein Tippfehler vor ...
Warnings sollten unkritisch in dem Sinne sein, dass das Script trotzdem läuft.
Ich würde in der Zeile drüber noch mal nach Sysntaxfehlern suchen.
Zu Pfadfehlern finde ich in deinem Posting keine Hinweise.

HTH, Z.
bei Antwort benachrichtigen
waldläufer Zaphod „ Das kann man nur beantworten, wenn man das ganze Script kennt. Hat aber nichts...“
Optionen

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 = "

Copyright 1996/1997 Guestbook Central

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 "

\n";
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 "

\n";
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 "

\n";
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;



bei Antwort benachrichtigen