chris schneider: Inhalt über Link mittels include() steuern

Moin Jungs,

ich hab folgendes Problem.
Ich habe eine Page aufgebaut mit ein
paar Tabellen. Oben den Header unten
Footer und in der Mitte einen
variablen Teil der sich dem Inhalt
in der Höhe anpasst.

Als Startinhalt hab ich einfach ne
php Datei per include() reingemacht.

Jetzt sind da natürlich auch ein paar
Links am Start. Und ich möchte, dass
sich die Inhalte der anderen Unterseiten
auch in dem Variablen Teil öffnen.

Aber ich hab nich so die Peilung wie
das gehen soll. Hatte mal angedacht irgendwas
mit getLink() oder so aber dazu hab ich
zu wenig Ahnung.

Danke schonmal für Eure Antworten im Vorraus.

  1. Hello,

    Wie sieht denn Dein Kopfbereich des Dokumentes aus?

    • DocType

    • HTML-Head
      -- ein paar Metaangaben
      -- Titelangabe
      -- zugeladene Ressourcen, CSS, JS ...

    • HTML-Body-Start
      -- und ein paar Ausgaben?

    Dein Zentralbereich:
    Wer weiß, was da steht...

    Der "Seitenfuß" des Dokumentes

    • noch ein paar Angaben
    • Body-
    • und HTML Abschlusstags

    Wenn Du jetzt "Seiten" über Links referenzierst, dann werden die doch wohl auch vollständige HTML-Dokumente sein, oder? Du müsstest sie also erst von "freischneiden", also nur den Inhalt des Body ausschneiden.

    Abgesehen von den technischen Voraussetzungen kann sowas auch eine Missachtung geltender rechte bedeuten. Fremde Inhalte darfst Du auf diese Weise ohne Weiteres nicht einfach einbinden.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Nene keine fremden Inhalte.

      Also der Aufbau is folgendermaßen:

      ----------------------------------

      Headerbereich (Banner, Navi, etc.) (Fixe Größe)

      ----------------------------------

      Contentbereich (Inhalt) (Variable Höhe, Breite Fix)

      ----------------------------------

      Footerbereich (Banner, Impressum, etc.) (Fixe Größe)

      ----------------------------------

      So und im Contentbereich ist als Startseite eine
      php Datein per include drin (<?php include('main/start.inc.php'); ?>)

      So und wenn man nun auf einen Link in der Navi
      oder im Footer klickt, soll im Contentbereich
      beispielsweise die impressum.inc.php angezeigt werden.

      Meine Frage war bzw. ist, wie ich das php technisch
      mache, das die impressum.inc.php dann auch im Contentbereich
      geladen wird.

      1. Hello,

        Meine Frage war bzw. ist, wie ich das php technisch
        mache, das die impressum.inc.php dann auch im Contentbereich
        geladen wird.

        Das eleganteste wäre eine rewrite-Regel am Webserver.

        Wenn man dann z.B.

        http://www.example.org/impressum/

        aufruft, wird durch den Server automatisch
        intern z.B. das Script /index.php?show=impressum
        aufgerufen und wie man dann in einem solchen Script mit GET-Parametern umgeht, weißt Du ja sicher.

        Du solltest allerdings keinsfalls einfach den Parameter zum Dateinamen erklären, sondern musst eine Transformation zwischenschalten.

        if (isset($_GET['show']) and $_GET['show'] == 'impressum')
           {
             include('.includes/impressum.inc.php');
           }
           elseif(isset($_GET['show']) and $_GET['show'] == 'news')
           {
             echo get_news(date());    ## als Anregung für eine eigene Funktion
           }
           else
           {
             echo "<h1>Willkommen</h1>\n";
           }

        Die direkte Übernahme des Parameters in den Pfad würde eine Sicherheitslücke aufmachen.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

  2. hi,

    Jetzt sind da natürlich auch ein paar
    Links am Start. Und ich möchte, dass
    sich die Inhalte der anderen Unterseiten
    auch in dem Variablen Teil öffnen.

    http://tut.php-q.net/frames.html

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      http://tut.php-q.net/frames.html

      gruß,
      wahsaga

      Supergeil Danke =D

    2. Hi!

      http://tut.php-q.net/frames.html

      Das Tutorial ist natürlich OK.
      Allerdings weiß ich nicht, wieso bei der index.php jede einzelne Zeile mit einem echo ausgegeben wird.
      Recht mühselig und ein wenig unübersichtlich. Alle Doublequotes müssen escaped und hinter jeder Zeile ein Umbruch mit \n gesetzt werden.
      Da würde ich nur an den benötigten Stellen einen PHP-Bereich aufmachen oder einen Heredoc-Bereich einsetzen.

      Schöner Gruß,
      rob