Stanload: Include und Pfade?

Hallöchen,

ich möchte z.B. meine News usw. per Iclude auf jede Seite einbinden möchte. An sich ja kein Problem, so da die Dateien denn alle auf eine Ebene sind.
Da ich aber mehrere Ordner und Unterordner usw. habe, könnte es mit dem ../ ein wenig nervig werden um auf die Includes zuzugreifen, die entweder auf unterster Ebene oder aber in einem eigenen Ordner liegen werden.

Habt Ihr eine Idee, wie man dies lösen könnte?

Und noch etwas:
Kann man den Includes was anhängen? Ich möchte z.B. ein Navi-Include machen, welches somit dynaisch arbeiten kann.
Und wenn ich etwas anhänge (wie z.B. bei html-Dateien mit dem _?_ und einem anschließendem JavaScript): gibt es eine Alternative zum JavaScript? Denn nicht alle User lassen so etwas zu.

Bis denn

Stanload

  1. hi,

    Kann man den Includes was anhängen? Ich möchte z.B. ein Navi-Include machen, welches somit dynaisch arbeiten kann.
    Und wenn ich etwas anhänge (wie z.B. bei html-Dateien mit dem _?_ und einem anschließendem JavaScript): gibt es eine Alternative zum JavaScript? Denn nicht alle User lassen so etwas zu.

    hä? was hat javascript mit der sache zu tun?
    bei einem include über's dateisystem hast du im includeten script alle variablenwerte zur verfügung, die auch im hauptscript existieren - wozu willst du da noch irgendwas "anhängen"?

    gruss,
    wahsaga

    1. Hallöchen,

      hä? was hat javascript mit der sache zu tun?

      Bei html-Dateien kann man ja mit einem _?_ was anhängen und in der aufrufenden Datei z.B. mit einem javascript weiterarbeiten, oder?
      So mache ich es zumindest derzeit, wenn ich direkt in Unterpunkte (aus den News heraus) springen möchte, in dem ich dem script age, er soll die Seite öffnen, die nach dem _?_ kommt, ansonsten halt eine vorgegebene Seit :-).

      bei einem include über's dateisystem hast du im includeten script alle variablenwerte zur verfügung, die auch im hauptscript existieren - wozu willst du da noch irgendwas "anhängen"?

      Ich wollte z.B. wie folgt aufrufen:

      <?php
      include("navigation.inc");
      ?>

      Da ich aber nur ein navigation.inc machen möchte, in dem dann z.B. immer der gewählte Punkt markiert ist und zu diesem entsprechend das Untermenü usw. aufbaut muss ich doch Informationen mitgeben, um welchen Punkt es sich handelt:
      http://test.stanload.de/test02.2.5.htm (hier sind exemplarisch dann alle 3 Ebenen aufgebaut).

      Bis denn

      Stanload

      1. hi,

        Ich wollte z.B. wie folgt aufrufen:
        <?php
        include("navigation.inc");
        ?>
        Da ich aber nur ein navigation.inc machen möchte, in dem dann z.B. immer der gewählte Punkt markiert ist und zu diesem entsprechend das Untermenü usw. aufbaut muss ich doch Informationen mitgeben, um welchen Punkt es sich handelt

        wie schon gesagt:
        wenn dem "haupt"-script diese information in der variablen $xy vorliegt, kann das per include (übers dateisystem) eingebundene script die variable $xy genauso verwenden.

        eine parameter-übergabe über GET macht bei einem include übers dateisystem keinen sinn.

        gruss,
        wahsaga

        1. Hallöchen,

          wie schon gesagt:
          wenn dem "haupt"-script diese information in der variablen $xy vorliegt, kann das per include (übers dateisystem) eingebundene script die variable $xy genauso verwenden.

          Hm, irgendwie bin ich wohl noch was müde, verstehe nicht wirklich, was Du meinst *nachdenk*.

          Oder meinst Du, wenn ich bevor ich das Include aufrufe eine Variable fülle, z.B. $navi = "private"; , und ich im Iclude dann eine If-Abfrage mache und entsprechend die Navi aufbaue?

          Und wie kann ich das mit dem Pfad, von wegen wo die Icludes liegen,  regulieren?

          Bis denn

          Stanload

          1. hi,

            Oder meinst Du, wenn ich bevor ich das Include aufrufe eine Variable fülle, z.B. $navi = "private"; , und ich im Iclude dann eine If-Abfrage mache und entsprechend die Navi aufbaue?

            ja! (jetzt zum bereits dritten male)
            wenn in dem script, dass mit include ein weiteres script einbindet, eine variable $navi zur vorhanden ist, dann steht sie im includeten script ebenso zur verfügung.

            gruss,
            wahsaga

            1. Hallöchen,

              ja! (jetzt zum bereits dritten male)
              wenn in dem script, dass mit include ein weiteres script einbindet, eine variable $navi zur vorhanden ist, dann steht sie im includeten script ebenso zur verfügung.

              Sorry, bin wohl nicht so ganz helle heute :-).
              Dann wäre die eine Sache ja schon einmal durchgekaut, danke!
              Bei der anderen weisst Du aber nicht weiter, oder?

              Bis denn

              Stanload

  2. Hallo,

    ich möchte z.B. meine News usw. per Iclude auf jede Seite einbinden möchte. An sich ja kein Problem, so da die Dateien denn alle auf eine Ebene sind.
    Da ich aber mehrere Ordner und Unterordner usw. habe, könnte es mit dem ../ ein wenig nervig werden um auf die Includes zuzugreifen, die entweder auf unterster Ebene oder aber in einem eigenen Ordner liegen werden.

    Habt Ihr eine Idee, wie man dies lösen könnte?

    Definiere den Pfad ausgehend von Document_root
    Ich habs bei meinen Seiten so gemacht:
    <?php $DR=getenv('DOCUMENT_ROOT') ?>
    Und der Aufruf dann:
    <?php include("$DR/pfad/datei") ?>
    Allerdings ist diese Schreibweise nicht mehr UptoDate, da solltest du dich vorher schlau machen, wie das in den neueren PHP-Versionen zu lösen ist.
    Ich hätte dir einen Link zum Archiv gepostet, aber die Suche ist zur Zeit ausgelastet.
    Bei mir läufts einfach zur Zeit noch so, da mein Provider eine etwas ältere PHP-Version einsetzt.
    Die Lösung ist auf jeden Fall im Archiv vorhanden.

    Gruß

    Kurt

    --
    grüne Idylle:"Wozu brauchen wir Kraftwerke, Strom kommt doch aus der Steckdose..."
    http://faq.united-web.at
    http://elektro-dunzinger.at
    http://shop.elektro-dunzinger.at
  3. Hello,

    dafür gibt es in der INI eine Einstellung:

    <cite>
    include_path string
    Hier können Sie ein Verzeichnis angeben, in dem die require(), include() und fopen_with_path() Funktionen nach Dateien suchen. Das Format ist ähnlich der PATH Umgebungsvariablen des jeweiligen Systems: Eine Liste von Verzeichnissen, getrennt durch einen Doppelpunkt bei UNIX oder ein Semikolon bei WINDOWS. Beispiel 4-1. UNIX include_path

    include_path=.:/home/httpd/php-lib
    </cite>

    Den gesetzten include-Path kann man im Script auch abfragen:

    $ipfad = ini_get("include_path");

    Das script sucht die zu includierenden Dateien erst relativ vom aktuellen Verzeichnis unter dem angegeben Pfad. Wenn sie dort nicht zu finden sind, absolut unter dem include_path.

    Der include_path ist absolut zum Dateisystem und nicht zur Document-Root!

    Grüße

    Tom

    1. Hallo Tom,

      Der include_path ist absolut zum Dateisystem und nicht zur Document-Root!

      Falls das eine Anspielung auf meine Aussage war, musst du dich nicht zurückhalten, wenn es daran etwas zu kritisieren gibt.
      Ich zähle mich, was PHP betrifft, zu den absoluten Anfängern, mein Wissen auf diesem Gebiet ist noch sehr mager und wird auch in absehbarer Zeit aufgrund Zeitmangels nicht sehr viel mehr werden. Aus diesem Grund bin ich eigentlich über Korrekturen an meinen Aussagen eher dankbar, da mir dies Gelegenheit gibt, ausserplanmäßig meine Kenntnisse zu erweitern. ;-)
      Ich bin bestimmt nicht sauer, wenn du mich direkt korrigierst, wenn ich mal wo falsch liegen sollte, was ja aufgrund der Tiefe meiner Kenntnisse nicht ganz so unwahrscheinlich ist.
      Was aber nicht heissen sollte, daß ich wissentlich Falschaussagen getroffen habe.
      Und für den Fragesteller fände ich es auch besser, wenn eine nicht ganz richtige Aussage nicht ganz unkommentiert stehen bliebe.
      Also, nur zu, ich bin mir bewusst, daß ich noch viel zu lernen habe. :-)

      Gruß

      Kurt

      --
      grüne Idylle:"Wozu brauchen wir Kraftwerke, Strom kommt doch aus der Steckdose..."
      http://faq.united-web.at
      http://elektro-dunzinger.at
      http://shop.elektro-dunzinger.at
      1. Hello Kurt,

        Der include_path ist absolut zum Dateisystem und nicht zur Document-Root!

        Falls das eine Anspielung auf meine Aussage war, ...

        Nö, eigentlich nicht. Es wird nur immer wieder gerne durcheinander gebracht. Passiert mir auch immer mal wieder. Und meine Antwort war ja auch noch nicht vollständig. Wenn man nämlich einen absoluten Pad angibt im include(), dann wird der auch berücksichtigt.

        Grüße

        Tom

        1. Hallo,

          Der include_path ist absolut zum Dateisystem und nicht zur Document-Root!

          Falls das eine Anspielung auf meine Aussage war, ...

          Nö, eigentlich nicht. Es wird nur immer wieder gerne durcheinander gebracht. Passiert mir auch immer mal wieder. Und meine Antwort war ja auch noch nicht vollständig. Wenn man nämlich einen absoluten Pad angibt im include(), dann wird der auch berücksichtigt.

          Aso, dann hab ich wohl wieder mal wo was vermutet, was so gar nicht zutrifft. ;-)
          Fehlerdenken resultierend aus mangeldem Wissen...

          Gruß

          Kurt

          --
          grüne Idylle:"Wozu brauchen wir Kraftwerke, Strom kommt doch aus der Steckdose..."
          http://faq.united-web.at
          http://elektro-dunzinger.at
          http://shop.elektro-dunzinger.at
    2. Hallöchen,

      danke für deine Erklärung, aber ich versteh dort wirklich nur Bahnhof :-(.

      Bis denn

      Stanload