Patrick Andrieu: Spamfilter in Seite einbauen II

Beitrag lesen

Hallo D!

Also ich hab jetzt noch mal nachgeschaut: Ich habe das Ganze so abgespeichert: Eingangsordner (den, den man sieht, wenn man sich per ftp einwählt) > html/cgi-bin/ > hier befindet sich der UGB-Ordner und die web-lib.pl Die Rechte hab ich entsprechend zugewiesen (755) und auch die Dateien sind am gleichen Platz, wie im Downloadarchiv.

Okidoki, ich habe mir schon fast gedacht, dass es mit dem DOCUMENT_ROOT zusammenhängt. Im Folgenden wird bei der Eingabe der Programmzeilen davon ausgegangen, dass Du in Deinem Texteditor den automatischen Zeilenumbruch abgeschaltet hast, oder einen Editor verwendest, der »echte« Zeilen zählt.

In der »config.pl«, ganz zu Beginn, sieht Zeile 6 wie folgt aus:

$dcr = $ENV{DOCUMENT_ROOT};

Und im so genannten Abschnitt ## Pfad-Variablen für den Online-Einsatz gibg es eine Reihe von Variablen, die Pfade zu den erforderlichen Dateien enthalten. Für die Datei »userlist.txt« sieht es so aus (Zeile 29):

$UserList = $dcr."/cgi-bin/ugb/files/userlist.txt";

Im Programm selbst, also in »ugb.pl«, wird das Öffnen der erforderlichen Dateien überprüft, um eben bei einem Fehlschlag eine entsprechende Fehlermeldung auszugeben. Das sieht dann beispielsweise so aus:

»ugb.pl«, Zeile 192:

open (HTFILE, "$UserList") || &Error($Why."Datei $UserList nicht gefunden.");

Und das ist genau das, was bei Dir jetzt passiert. Die Userliste wird nicht gefunden, also springt das Script die Errorroutine an und gibt aus:

Grund: Datei /home/www/cgi-bin/ugb/files/userlist.txt nicht gefunden.

Jetzt vergleichen wir mal:

$UserList = $dcr.    "/cgi-bin/ugb/files/userlist.txt";

Demnach hat $dcr, die ja den Wert der Umgebungsvariable $ENV{DOCUMENT_ROOT} enthält, hier den Wert: /home/www und das ist dein Root-Verzeichnis.

Dein cgi-bin befindet sich aber nicht im Wurzelverzeichnis, sondern wie Du hier sagst:

Eingangsordner (den, den man sieht, wenn man sich per ftp einwählt) > html/cgi-bin/ > hier befindet sich der UGB-Ordner und die web-lib.pl Die Rechte hab ich entsprechend zugewiesen (755) und auch die Dateien sind am gleichen Platz, wie im Downloadarchiv.

innerhalb eines weiteren Ordners Namens html.

Demnach wäre der richtige Serverpfad für die Userlsite:

/home/www/html/cgi-bin/ugb/files/userlist.txt

Die Lösung besteht darin, sämtliche Variablen in der »config.pl« entsprechend anzupassen:

$UserList = $dcr."/html/cgi-bin/ugb/files/userlist.txt";
$FlagFile = $dcr."/html/cgi-bin/ugb/files/$ip.txt";
$BookFile = $dcr."/html/cgi-bin/ugb/files/bookfile.txt";
$Template = $dcr."/html/cgi-bin/ugb/files/template.txt";
$BadWordFile = $dcr."/html/cgi-bin/ugb/files/badwords.txt";
$DomainFile = $dcr."/html/cgi-bin/ugb/files/domains.txt";
$pwFile = $dcr."/html/cgi-bin/ugb/files/pw";

Dein Server ist sicher so konfiguriert, dass obwohl der Ordner html nicht das Root-Verzeichnis ist, und sich das cgi-bin sich darin befindet, ein Aufruf in der Form:

http://www.jura-kolbingen.de/cgi-bin/ugb/ugb.pl

keinen Fehler bring. Deswegen änderst Du bitte $AdminPath (Zeile 36), wie folgt:

$AdminPath = "http://www.jura-kolbingen.de/cgi-bin/ugb/admin.pl";

Gleich darunter, für sendmail, frag lieber Deinen Provider, welcher der Pfad zu sendmail ist, solltest Du keine Mails vom Gästebuch erhalten!

Vergiss nicht, die sogenannten »Konfigurationsvariablen« nach Belieben anzupassen und unter »Diverses« eine E-Mail-Adresse für $MyEmail anzugeben, sowie $konkat, $regeln und $komIntro mit entsprechenden Werten zu belegen.

In der Datei »header« im Ordner »files« muss auch noch die Formularpage richtig angegeben werden:

<h2>Einträge lesen (<a href="XXXVerlinken Sie hier Ihre FormularseiteXXX">Eintragen</a>)</h2>

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?