include macht alles kaputt

z0oL

Erfahrenes Mitglied
Bitte lacht mich nicht aus, aber ich habe ein Problem:

top.php und
bottom.php

liegen im Hauptverzeichis der Servers. Weitere Dateien liegen in einem Ordner, zum Beispiel 'test'. Wenn ich jetzt per IE im Ordner 'test' bin, und von da aus die top.php include, fehlen alle Bilder, weil dann die Verzeichnisstruktur nicht mehr stimmt. Wie kann ich dieses Problem lösen, ohne alle Dateien 2x hochzuladen?

Danke im vorraus,

Felix
 
äh.. ja gut das problem klingt nach einem typischen OPENBASEDIR fehler...

wie du es lösen kannst? wenn du admin zugriff zum server hast in der php.ini den eintrag openbasedir = off setzen... Wenn du keinen admin hast der das macht, spar dir die arbeit mit fragen, das wird kein verantworungsbewuster admin auf einem server wo mehrere verschiedene user gehostet werden machen.

alternativen? gibts keine...

als hinweis was openbasedir is...
das ist eine eigenschaft die man in PHP aktiveren kann, ist sie aktiviert darf ein PHP script nicht auf übergeordnete verzeichnisse zugreifen.. sowas wie ../data.inc.php gibt es nicht, auch ../include/data.inc.php funktioniert nicht... genausowenig wie absoluter pfad dahin funktioniert.... ist ein schutz wenn mehrere user sich einen server teilen, das niemand auf dem anderem seinen daten rumschreibt damit..
 
Hm, wenn ich deine Frage richtig verstehe, hast du Probleme mit den Bildern, aber das includen der Dateien funktioniert einwandfrei. Oder? Auf Korrektheit dieser Annahme basiert mein Lösungsvorschlag :)

Nehmen wir mal an, du hast die Domain http://www.doma.in und die Bilder liegen dort im Verzeichnis "images", also folglich unter http://www.doma.in/images zu erreichen. Wenn du nun eine HTML- oder PHP-Datei im Ordner "test" liegen hast und diese Aufrufst, musst du die Bildquelle entsprechend anpassen. Dazu gibt es 2 Möglichkeiten:

:: relativer Pfad: <img src="../images/bild.jpg" [...]>
Erklärung: Das Bild "bild.jpg" wird im Ordner "images" gesucht, welcher eine Ordnerebene höher liegt. Ergibt für den Browser http://www.doma.in/images/bild.jpg. Aber Achtung hierbei! Wenn du diesen Pfad in deinen beiden Dateien angibst und du diese Dateien auch von der Datei http://www.doma.in/index.php includen willst, funktioniert das nicht mehr korrekt, denn der Browser kann keine Ordnerebene höher nach einem Bild suchen.

:: absoluter Pfad: <img src="/images/bild.jpg" [...]>
Erklärung: Das Bild "bild.jpg" wird im Ordner "images" gesucht, welcher auf der höchsten Ordnerstruktur deiner Domain liegt. Dies funktioniert aus jedem beliebigen Unterordner deiner Domain, egal wie tief. Du kannst vor den ersten Slash natürlich auch die Domain stellen.

Ich hoffe, dass ich jetzt auch richtig liege und deine Frage beantworte... wenn ich richtig liege, dann sollte diese Frage allerdings in das HTML-Forum, denn es ist ein HTML Problem :)

Gruß,
matt
 
Zurück