ich habe in meine Seite den Befehl include eingebaut. Es war übrigens der erste Befehl, den ich flächendeckend für meine Seite von php benutzte, da ich darin noch keine Erfahrung habe.
Leider funktioniert das include ab der zweiten Ordnerebene nicht mehr vollständig. Damit meine ich, wenn ich eine php-Datei in einem Unterordner aufrufe, wird diese nicht mehr richtig dargestellt.
Entschuldigt bitte. Durch herumexperimentieren habe ich es gelöst. Anscheinend müssen bei den Links, welche durch include eingefügt werden, an Anfang noch ein Schrägstrich stehe.
Beispiel:
html=…/design.css
php=/…/design.css
Wenn ich widererwartend falsch liegen sollte, könnt ihr euch trotzdem gerne dazu äußern. Aber momentan scheint es zu funktionieren.
sieht mir für (X)HTML, welches per HTTP ausgeliefert wird, sehr
merkwürdig aus. In der Regel kann/darf der server auf solche
Verzeichnisse gar nicht zugreifen…
Jedenfalls sind relative Pfade innerhalb von href und
ähnlichen Attributen immer von der aufgerufenen/ausgegebenen
Datei aus anzugeben, nicht von der per include eingebetteten.
Das ist bei relativen Pfaden in PHP ähnlich. Bei den
(X)HTML-Pfadangaben muß zudem die Zieldatei auch noch in
einem für HTTP zugänglichen Verzeichnis liegen.
Vielen Dank hoffmann, für die Rückmeldung. Leider muss ich zugeben, dass ich deinem Text nicht ganz folgen kann. Wahrscheinlich fehlt mir dafür noch das Verständnis.
Wie würde das in meinem Fall den konkret aussehen?
Schon mal danke.
Gruß Elsner
PS: Mag sein, das es etwas verkehrt ist. Aber deshalb habe ich in meinem vorherigen Beitrag auch gegebenenfalls um eine Rückmeldung gebeten. Gestern war ich erst mal froh, dass es für meine Zwecke funktioniert hat.
Unter der oben angegebenen URI sehe ich jetzt kein Problem
oder eine Fehlermeldung von PHP.
Du solltest also exakt eine URI angeben, bei der ein Fehler oder
ein Problem auftritt und dieses präzise beschreiben.
Sowas wie
href="/…/kontakt.php"
scheint zumindest mein browser automatisch zu korrigieren,
zu “…/kontakt.php” und dann schließlich als absoluter Pfad volner-reisel.bplaced.net/kontakt.php
Ich glaube allerdings nicht, daß der browser die erste Korrektur
machen muß, sieht mir eher so aus, als täte er nach Feststellung
der Sinnlosigkeit der Angabe raten, was gemeint sein könnte.
Danke hoffmann. Die fehlerhafte Seite kannst du nicht mehr sehen, da ich es gestern noch irgendwie hinbekommen habe.
Ich habe jetzt nochmal etwas herum gespielt mit den Pfadangaben und PHP verwirrt mich immer mehr.
Kann es sein, dass die Pfade bei PHP vom Root-Verzeichnis aus angegeben werden müssen?
Weiterhin funktionieren alle Pfade (Links) nur, wenn ich zusätzlich einen Schrägstrich voran stelle. Ist das normal bei PHP?
Beispiel CSS:<link rel="stylesheet" href="/_bausteine/design/design.css" type="text/css">
Ich hoffe, das ist keine zu dumme Frage. Aber das sind nunmal meine erste Schritte bei PHP und hoffe, ihr verzeiht mir das.
Das angegebene Element link gehört ja vermutlich zu (X)HTML,
hat aber sicherlich nichts oder wenig mit PHP zu tun.
Wenn du relative Pfade angibst, kommt es eben darauf an,
was der Bezugspunkt ist. Wenn nichts anderes angegeben ist
(ginge mit xml:base bzw base), ist das aktuelle Dokument der
Bezugspunkt.
Wenn das in einem Unterverzeichnis liegt, ist
href="/_bausteine/design/design.css"
(im Hauptverzeichnis gibt es das Unterverzeichnis _bausteine/ etc)
natürlich was anderes als
href="_bausteine/design/design.css"
(im gleichen Verzeichnis gibt es das Unterverzeichnis …)
und eventuell auch als
href="…/_bausteine/design/design.css"
(im übergeordneten Verzeichnis gibt es das Unterverzeichnis…)
Das kann etwas verwirrend sein, wenn man das Dokument per
PHP include aus Fragmenten zusammensetzt, die in
verschiedenen Unterverzeichnissen liegen oder noch ärger, wenn
die einbindenden Dateien in verschiedenen Unterverzeichnissen
(auf verschiedenen Ebenen liegen). Maßgeblich für den Verweis
in (X)HTML ist nicht, woher PHP die Datei bekommt, sondern
nur die Ausgabe, nachdem PHP abgearbeitet ist, denn der browser
sieht nur das Endergebnis und wertet das aus.
Da href="/_bausteine/design/design.css" vom Hauptverzeichnis
(der subdomain) aus gesehen ist, wird das jedenfalls immer
funktionieren, egal in welchen Unterverzeichnissen die
eingebundenen und einbindenden Dokumente liegen. Das ist
gegebenenfalls nur unnötig lang, wenn der Pfad so etwa
in “/_bausteine/design/beispiel.html” steht.
Wenn da was bei (X)HTML-Verweisen nicht geht, mußt du
eigentlich nur mit dem browser in die ausgegebene Datei gucken.
Wie die erzeugt wurde, ist dabei völlig belanglos.
Das, was du gezeigt hast, ist nicht mal PHP …
Mach dir erst mal den Unterschied zwischen einem Zugriff auf Dateien über das lokale Dateisystem des Servers, und dem Zugriff auf Ressourcen über HTTP klar.
Nochmals vielen Dank hoffmann. Da muss ich mir wahrscheinlich noch einiges aneignen, wenn ich mir deinen Beitrag so ansehe. Ich gelobe Besserung und durch meine Fehler habe ich ja jetzt schon dazu gelernt. Danke.