Seite 1 von 1

Problem mit relativen Pfaden nach Domain-Umstrukturierung

Verfasst: 16.10.2010, 15:32
von Andreas 2010
Hallo Leute, ich brauche mal wieder den Rat eines Profis :roll:

Ich bin mit meiner alten Homepage unter einem neuen Domainnamen zu einem anderen Provider umgezogen und habe den Webspace 1:1 kopiert. Funktionierte auch soweit alles einwandfrei.

Nun wollte ich eine kleine Umstrukturierung vornehmen, indem ich eine PHP-Datei nicht mehr auf die Hauptebene, sondern in ein Unterverzeichnis legen wollte. In dieser Datei lautet die erste Zeile: require("config.php").
Diesen Pfad habe ich geändert in: require("../config.php"), um ein Verzeichnis nach oben zur config.php zu gehen.

Beim Aufruf der Datei erscheint nun folgende Fehlermeldung:

Warning: require_once(includes/functions.php) [function.require-once]: failed to open stream: No such file or directory in /home/www/familienstammbaum/includes/session.php on line 136

Fatal error: require_once() [function.require]: Failed opening required 'includes/functions.php' (include_path='.:/usr/share/php') in /home/www/familienstammbaum/includes/session.php on line 136

Hab daraufhin gegoogelt und was zum Thema relative und absolute Pfade bzgl. require/include gefunden. Habe es dann mal versucht mit einem absoluten Pfad wie "/home/www/familienstammbaum/config.php", aber klappt einfach nicht :bad-words: .

Hat jemand eine Idee?

Vielen Dank im voraus.

Andreas :)

Verfasst:
von

Verfasst: 16.10.2010, 16:40
von ishmael
Sicher dass '/home/www/familienstammbaum/' auch der richtige Pfad ist?

Ich nutze für solche Sachen die Servervariable $_SERVER['DOCUMENT_ROOT']. Schonmal damit probiert?

Verfasst: 16.10.2010, 16:54
von bloddy newbie
Hallo,

kannst du bitte den Inhalt dieser Zeile posten:
No such file or directory in /home/www/familienstammbaum/includes/session.php on line 136
Aus dem Blauen - innerhalb von includes/session.php wird versucht includes/functions.php zu requrien. Vermutlich musst du an dieser Stelle das includes/ vor functions.php entfernen.

Grüße BN

Verfasst: 16.10.2010, 17:21
von Andreas 2010
Danke für Eure Antworten :D

@ishmael:
ja, ich habe im FTP-Programm nachgesehen. Das mit der Servervariable kenn ich leider nicht.

@bloddy newbie:
Inhalt sieht so aus: require_once($PGV_BASE_DIRECTORY."includes/functions.php");
Das includes/ habe ich schon mall weggenommen, Fehlermeldung nun zwei Zeilen tiefer. An der Stelle auch includes/ weggenommen. Dann Fehlermeldung so: require_once($PGV_BASE_DIRECTORY."config_gedcom.php");

Irgendwie findet er was nicht, oder? :roll:

Re: Problem mit relativen Pfaden nach Domain-Umstrukturierun

Verfasst: 17.10.2010, 00:03
von 800XE
Andreas 2010 hat geschrieben:In dieser Datei lautet die erste Zeile: require("config.php").
Diesen Pfad habe ich geändert in: require("../config.php"), um ein Verzeichnis nach oben zur config.php zu gehen.
mach alles wieder so wie es war .....

require("config.php"). ..... nicht ... require("../config.php")

und ind er Datei die du in einen Ordner verlegt hast
(ich gehe dafon aus das die direkt aufgerufen wird)
https://de.php.net/chdir
damit das ".." machen, dann sollte wieder alles stimmen

Verfasst: 17.10.2010, 11:00
von bloddy newbie
$PGV_BASE_DIRECTORY muss auf das Rootverzeichnis deiner Präsenz zeigen. Ich vermute, dass dieser Pfad innerhalb von config.php gesetzt wird. Dort ist der Pfad entsprechend anzupassen.

Grüße BN

Verfasst: 17.10.2010, 11:02
von Andreas 2010
Hallo 800XE, danke für den Tip :)

Hat schon zu 50% geklappt, d.h. ich habe eingegeben:
chdir("../");
require("config.php");

Jetzt macht er keine Fehlermeldung mehr und bringt tatsächlich den Inhalt der Seite, ABER OHNE FORMATIERUNG, er ignoriert die externe Stylesheet-Datei. Die liegt von der Hauptebene aus zwei Ebenen tiefer. Warum findet er die plötzlich nicht mehr?

Hast du noch eine Idee?

Verfasst: 17.10.2010, 11:15
von Andreas 2010
Hallo BN,

vielen Dank, deinen Post habe ich eben gar nicht gesehen :wink:

Als letzte Zeile in der config.php steht folgendes:
require_once($PGV_BASE_DIRECTORY."includes/session.php");

Die Variable habe ich dann mal aufgelöst und aus der Zeile folgendes gemacht:
require_once("/home/www/familienstammbaum/includes/session.php");

Aber Ergebnis dasselbe :roll:

Verfasst: 17.10.2010, 11:23
von Andreas 2010
Hatte ich eben vergessen, in der ersten Zeile der config.php steht folgendes:

$PGV_BASE_DIRECTORY = ""; //-- path to phpGedView (Only needed when running as phpGedView from another php program such as postNuke, otherwise leave it blank)

Verfasst: 17.10.2010, 11:32
von 800XE
Andreas 2010 hat geschrieben:chdir("../");


er ignoriert die externe Stylesheet-Datei.
Die liegt von der Hauptebene aus zwei Ebenen tiefer. Warum findet er die plötzlich nicht mehr?
chdir gilt für PHP nicht für html

Verfasst: 17.10.2010, 11:35
von Andreas 2010
@800XE:
verstehe ich jetzt nicht so ganz :oops:

Verfasst: 17.10.2010, 12:03
von Andreas 2010
@800XE:
Wie gesagt, das mit dem chdir hat ja soweit geklappt. Die Datei "ahnenforschung.php" im Verzeichnis "ahnenforschung" liest jetzt also scheinbar die erforderlichen Dateien auf der Hauptseite aus, nur eben die Stylesheets werden nicht interpretiert.

Hier der Original-Link zu der Seite:
https://www.der-familienstammbaum.de/ah ... schung.php
Im Quelltext ist der Pfad zu "style.css" auch richtig angegeben, aber trotzdem gibt der Browser die Seite nicht richtig aus :(

Muss jetzt zu ner Verabredung, bin heute abend wieder online.

Danke noch mal für eure Mühe :wink:

Verfasst: 17.10.2010, 13:03
von 800XE
Andreas 2010 hat geschrieben:Im Quelltext ist der Pfad zu "style.css" auch richtig angegeben,


aber trotzdem gibt der Browser die Seite nicht richtig aus :(
wenn es richtig wäre,
dann wäre das css
der-familienstammbaum.de/ahnenforschung/themes/standard/style.css
dort ist aber Error404


link rel="stylesheet" href="themes/standard/style.css"

ist auch "relativ"
"relativ" zu der-familienstammbaum.de/ahnenforschung/
also, wie oben gesagt
der-familienstammbaum.de/ahnenforschung/themes/standard/style.css

das css ist aber unter
der-familienstammbaum.de/themes/standard/style.css

Verfasst: 17.10.2010, 19:46
von Andreas 2010
@800XE:

Verdammt du hast recht, ist ja ein relativer Pfad, der da steht. :D
Da ich mich im Verzeichnis ahnenforschung befinde, kann er es ja nicht finden, habe ich gar nicht bemerkt.

Ich dachte, mit dem chdir würde ins Hauptverzeichnis gesprungen und von da aus würden alle erforderlichen Pfade wieder stimmen. Aber dem scheint wohl doch nicht so.

Wenn's keine andere Lösung gibt, werde ich die stylesheet-Pfade einfach in absolute Pfade umwandeln, dann müsste es ja gehen. Werde es mal ausprobieren, melde mich dann wieder.

Verfasst: 17.10.2010, 20:07
von Andreas 2010
Mit den absoluten Pfaden scheint alles zu klappen, werde dann mal das ganze umarbeiten.

Vielen Dank noch mal für Eure Hilfe :D