Include Problem

Dieses Thema Include Problem im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von ccp, 26. Okt. 2004.

Thema: Include Problem Hi ich habe ein Problem beim uncluden, und zwar möchte ich eine navi includen: <? include...

  1. ccp
    ccp
    Hi ich habe ein Problem beim uncluden, und zwar möchte ich eine navi includen:

    <? include ('Site_Designs/linke_navi.php') ?>

    ich befinde mich im ordner /Sites/Sport

    nun kann die linke navi nicht included werden da php denkt Site_Designs ist im Ordner Sport, dabei befindet sich Site_Design im Anfangsverzeichnis.

    Wie kann ich das lösen?

    Ich bitte um Hilfe
    mfg ccp
     
  2. Wie du schon richtig festgestellt hast, befindet sich die linke_navi.php nicht in dem Verzeichnis, in dem sich die PHP-Datei befindet, in die du die linke_navi.php includieren willst. Um im Pfad einen Ordner höher zu gelangen, gibt es die 2 Punkte (..). Also mach mal

    include (../../Site_Designs/linke_navi.php);
     
  3. ccp
    ccp
    Klappt, vielen Dank!
     
  4. Ich persönlich empfehle immer an dieser Stelle mit dem / (ohne Vorangestellte .. ) in die Root deines Verzeichnisses zu springen und von dort den Verzeichnissbaum neu aufzubauen. Das hilft ungemein Fehler zu vermeiden bzw. das Script innerhalb kürzester Zeit zu protieren. Denn wenn du die danach folgende Verzeichniss Struktur NICHT änderst musst du im Normalfall nichts verändern. (Wenn du mit ../ usw. arbeitest zwar im Normalfall auch nicht, aber ich persönlich empfehle eigentlich rein aus der eigene Erfahrung heraus die andere Methode) Hatte früher immer mit ../ gearbeitet (Habe darüber auf jeder Seite meine CSS Dateien eingebunden als ich noch am Anfang bei HTML war), bis ich irgendwann einmal in 500 Seiten die Pfade anpassen musste. Danach habe ich mich dazu entschieden mit der / Variante zu arbeiten da du in diesem Fall in allen 500 Seiten das selbe Suchkriterium hast und somit ganz einfach mit Suchen und Ersetzen über 500 Dateien arbeiten kannst, und das ohne eine andere Pfadangabe zu beschädigen.
     
  5. Auch ne Möglichkeit
     
  6. Code:
    <? include ($_SERVER['DOCUMENT_ROOT'].'/Site_Designs/linke_navi.php') ?>
    
     
  7. *mmmöööööpppp* Ganz schlechte Idee, um genau zu sein sehr schlechte Idee. Dem Irrglauben, mit $_SERVER['DOCUMENT_ROOT'] eine Wunderwaffe in der Hand zu haben ( außer dem / ) um Probleme mit relativen absoluten Pfadangaben zu lösen, bin ich auch sehr lange aufgesessen bis ich mal einen Server Umzug hatte und blöd aus der Wäsche geschaut habe wieso diverse Skripte nicht mehr liefen.
    Das Problem mit $_SERVER['DOCUMENT_ROOT'] ist das es das Dateisystem des Webservers wiederspiegelt und nicht das des Systems auf dem der Webserver läuft. Sollte also der Fall eintreten das das Home Verzeichniss des Users außerhalb des Document Root des Webservers liegt (was aus Sicherheits und Recht Gründen OFT gemacht wird) hast du mit $_SERVER['DOCUMENT_ROOT'] ziemlich verloren! Soviel dazu.
     
  8. ok, dann erkläre mir mal bitte ausführlicher wie man es richtig macht. Ich hab dein obiges Posting nämlich nicht verstanden.

    Was meinst Du mit / ??
     
  9. Der / steht immer für die Würzel des Dateisystems. Allerdings hab ich Gandalfs Ausführungen bzgl. der $_SERVER-Variable nicht ganz richtig verstanden. Ich glaube jedoch, dass es einen Unterschied gibt zw. dem ECHTEN Dateisystem auf dem Host auf dem der Server läuft und dem - ich nenns mal - virtuellen Dateisystems DEINES Webspace-Accounts... Da auf einem Host ja viele Webspace-Accounts gelagert sein können...
    Mit / (das ist jedenfalls meine Erfahrung) gelangst du zu der Wurzel DEINES Dateisystems.
    Beispiel:
    Du befindest dich z. B. in ROOT/html und willst in einer dort abgelegten HTML-Datei ein Bild einbinden, dass sich in ROOT/images befindet:
    1. Möglichkeit wäre <img src=../images/bild.gif>
    2. Möglichkeit wäre <img src=/images/bild.gif>
    Die 2. Möglichkeit hat den Vorteil, dass du die HTML-Datei danach an eine x-beliebige Stelle verschieben kannst, und die Verknüpfung zum Bild immernoch gültig ist...

    Das geliche gilt für das Includen von PHP-Skripten...

    Greetz
    M.
     
  10. Ok verstanden. Nur bei mir funktioniert das nicht.

    Ich hab folgendes Skript im ROOT Verzeichnis (ist allerdings mein WinXP System zu Hause):

    Code:
    <?php
    
    include(/cgi-bin/myinc.php);
    
    ?>
    <html>
    <head></head>
    <body>
    
    <img src=/images/guestbook.bmp>
    
    </body>
    </html>
    
    Und obwohl sich myinc.php in ROOT/cgi-bin/ befindet wird es nicht gefunden.

    Code:
    Warning: main(/cgi-bin/myinc.php): failed to open stream: No such file or directory in W:\web\homepage\web\inctest.php on line 3
    
    Was muss/kann ich tun, damit es trotzdem gefunden wird? Mir persönlich wäre eine Lösung ohne $_SERVER['DOCUMENT_ROOT'] eindeutig lieber.

    Gruß
    VoiDy
     
Die Seite wird geladen...

Include Problem - Ähnliche Themen

Forum Datum
PHP5 mitm Apache unter Debian will keine Dateien Includen ?:-( Windows XP Forum 27. Okt. 2008
include zentrieren Webentwicklung, Hosting & Programmierung 24. Juli 2008
Server Side Include Windows XP Forum 18. Apr. 2007
PHP: INCLUDE zum dynamischen Einfügen von Inhalten Webentwicklung, Hosting & Programmierung 13. Apr. 2007
php include wird nicht ausgeführt Webentwicklung, Hosting & Programmierung 28. Jan. 2007