Datum: 19.12.2008
, Kategorie:
Kunden,
Scripte
Was macht man, wenn ein Script offensichtlich nicht installiert wurde und trotzdem funktioniert? Einen Exorzisten rufen?
Eine Kundin ließ uns wissen, dass das Captcha-Bild in ihrem Kommentar-Script nicht angezeigt wurde. Viele Möglichkeiten gibt es da nicht; das wird einfach, dachten wir uns.
Beim Aufruf der Seite wurde zwar das Kommentarformular und auch die Smiley-Bilder korrekt angezeigt, das Captcha-Bild jedoch nicht. Alles, wie von der Kundin geschildert. Meistens liegt das Problem an falschen Verzeichnisrechten oder der fehlenden Font-Datei, aber das Verzeichnis war schreibbar und auch die Font-Datei war vorhanden.
Warfen wir also einen Blick auf den Admin-Bereich. Da erwartete uns allerdings das Installationsformular (MySQL-Daten etc.), ein Zeichen dafür, dass das Script noch gar nicht installiert ist. Ebenso fehlte die dbconfig.php mit den MySQL-Zugangsdaten.
Das Script war offensichtlich noch nicht installiert und trotzdem wurde das Kommentarformular angezeigt. Wie konnte das sein? Nach einigem Probieren und Suchen fiel der Blick auf die Datei include.php, welche während der Installation des Comment Scripts automatisch erstellt wird. Die Datei enthält die absoluten Server-Pfad zum Script und bindet das Script in jede beliebige Seite ein. Die Frage war: wo kommt die Datei her, wenn das Script noch gar nicht installiert ist?
Nach dem Vergleichen des Pfades in der include.php mit dem tatsächlichen Server-Pfad lichtete sich der Nebel. Die Erklärung war dann auch relativ einfach und wenig mystisch. Die Kundin hatte Script unter Domain A installiert und zum Laufen gebracht. Später hat sie dann alle Script-Dateien in das Verzeichnis für Domain B auf demselben Server kopiert. Inklusive der include.php. Die enthielt jedoch den Server-Pfad zum Script auf Domain A. Damit wurde das funktionierende Script von Domain A bei Domain B eingebunden. Wäre das Captcha-Bild nicht gewesen, hätte das sogar funktioniert.
Das Rätsel ist also gelöst. Wie man sieht, benötigt es nicht besonders viel, um sich selbst zu überlisten. ;-)