DerManny: includes

Hallo,

ich habe mal eine Frage zu den Includes.

Im Moment werden aktuelle Seiten ja wie folgt aufgebaut:
site.de
menue.php
sitedesign.php

site.de/login/
loginformulare.php

site.de/login/menüpunkt1/
content_invis.php
more_content.php

site.de/login/menüpunkt2/
more_content.php
only_for_member.php

site.de/menüpunkt3/
official_news.php

site.de/menüpunkt4/
contact.php

Da ich bisher nicht so die Erfahrung in PHP habe, aber auch noch kein gutes tutorial gefunden habe, wollte ich mal fragen ob von euch jemand eins kennt.

Soweit ich das bisher verstanden habe, müsste ich bei der Struktur oben auf jeder php Seite, dass Menü z.b. einbinden, sofern ich es haben möchte. Wenn ich nun aber z.b. sitedesign ändere, wie packe ich es, dass dieses Design auf alle anderen php Seiten angewendet wird? Weil im Normalfall sieht es ja so aus:

tags, divs usw. die vorm content stehen
content
tags, divs usw. die nach dem content stehen

Irgendwie muss ich ja das gesammte Bild sozusagen vervollständigen, realisiert man sowas wie folgt:
include("top.php");
content der auf der seite zu sehen sein soll
include("bottom.php");

Bei der Variante würde mich z.B. stören, dass ich die öffnenden und schließenden Tags schlecht überprüfen kann.

Bin schon mal sehr Dankbar für jede Hilfe.

LG Der Manny

  1. Hi,

    ich habe mal eine Frage zu den Includes.

    ich verstehe zwar nicht so genau, was eigentlich dein Problem ist, aber ...

    Soweit ich das bisher verstanden habe, müsste ich bei der Struktur oben auf jeder php Seite, dass Menü z.b. einbinden, sofern ich es haben möchte. Wenn ich nun aber z.b. sitedesign ändere, wie packe ich es, dass dieses Design auf alle anderen php Seiten angewendet wird?

    Das "Design" ist ja normalerweise das Grundgerüst, oft als Template bezeichnet, und das zentrale Stylesheet. Also eigentlich ganz einfach.

    Weil im Normalfall sieht es ja so aus:

    tags, divs usw. die vorm content stehen
    content
    tags, divs usw. die nach dem content stehen

    Nö. Bei mir eher so:

    * Allgemeine Logik, evtl. Eingaben prüfen und aufbereiten, Session starten/wiederherstellen
     * DOCTYPE
     * Kopfbereich (head-Element)
     * gleichbleibende Strukturen (z.B. Banner, Navigation, Seitenheader)
     * wechselnder Inhalt je nach URL (wird per include eingebunden)
     * gleichbleibende Strukturen (z.B. Footer)

    Irgendwie muss ich ja das gesammte Bild sozusagen vervollständigen, realisiert man sowas wie folgt:
    include("top.php");
    content der auf der seite zu sehen sein soll
    include("bottom.php");

    Eher umgekehrt. :-)

    Ciao,
     Martin

    --
    Butterkeksverteiler zu werden ist vermutlich eine der wenigen beruflichen Perspektiven, die sich noch bieten, wenn man einen an der Waffel hat.
      (wahsaga)
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Danke für die schnelle Antwort, da habe ich glaube ich meine Wissenslücke gefunden. Der wechselnde Inhalt der Anhand der URL wechselt :)

      Ich denke das realisiert man dann per:

      $_SERVER["HTTP_REFERER"];
      bzw.
      $_SERVER["REQUEST_URI"];

      und zeigt dann je nachdem den entsprechenden content per include in der entsprechenden index.php an, welche sich aber im "main" Verzeichnis befindet? Oder hast du dafür evtl. ein gutes Tutorial?

      LG Manny

      1. Hallo,

        Danke für die schnelle Antwort, da habe ich glaube ich meine Wissenslücke gefunden. Der wechselnde Inhalt der Anhand der URL wechselt :)

        Ich denke das realisiert man dann per:

        $_SERVER["HTTP_REFERER"];
        bzw.
        $_SERVER["REQUEST_URI"];

        nein, so umständlich muss es gar nicht sein. Der HTTP-Referer hat damit außerdem überhaupt nichts zu tun; das ist nur die URL der Seite, die den Request ausgelöst hat. Bei Bildern, Stylesheets oder eingebundenen Javascripts also die URL des Basisdokuments; bei HTML-Dokumenten die URL, von wo aus auf die aktuelle Ressource verlinkt wurde[1].

        und zeigt dann je nachdem den entsprechenden content per include in der entsprechenden index.php an, welche sich aber im "main" Verzeichnis befindet?

        Wie bitte??
        Nein, ich löse das je nach Projekt auf unterschiedliche Weise.

        Entweder ich übergebe einen eindeutigen Bezeichner für das gewünschte Dokument als URL-Parameter, zum Beispiel ?page=kontakt oder ?p=17. Diesen Parameter wertet mein Script als $_GET['page'] oder $_GET['p'] aus und leitet daraus den Namen für die erforderliche include-Datei ab (z.B. aus einer Tabelle). Mit mod_rewrite lasse ich "schöne" URLs auf diese internen URLs abbilden.

        Oder ich hänge die nötige Information an den Scriptnamen mit an, als sei es ein Verzeichnisname, etwa /index.php/impressum. Dieses Anhängsel kann ich über $_SERVER['PATH_INFO'] auswerten und dann ähnlich verarbeiten wie im ersten Beispiel.

        Oder hast du dafür evtl. ein gutes Tutorial?

        So aus dem Ärmel nicht. Aber die dürften nicht schwer zu finden sein.

        Ciao,
         Martin

        [1] Jedenfalls in einem gutmütigen Universum. In der Realität kann der Referer auch irgendwelchen Blödsinn enthalten, oder gar ganz fehlen.

        --
        Letztlich basiert alles auf dem Feuer, dem Rad, der Eins und der Null.
          (Gernot Back)
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(