Jochen: Inhaltsbereich einer Seite verändern

Hallo
Ich hoffe, ich habe diesem Thema auch den richtigen Bereich zugewiesen.
Mein Problem ist folgendes:
Auf einer Webseite möchte ich einen bestimmten Bereich definieren, welcher Texte und Bilder enthalten kann. Dieser Bereich soll sich durch Klicks auf die Buttons im Hauptmenü verändern können, wobei die restlichen Bereiche der Seite (Banner, Menü etc) unverändert bleiben sollen.
Das ganze sollte ohne die Verwendung von Javascript oder iFrames geschehen. Vermutlich muss ich also auf PHP zurückgreifen, was nun leider nicht so ganz meiner Stärke ist.
Falls es keine andere Lösung gibt wäre mir sehr mit einem PHP-Script oder einer möglichsten einfachen Anleitung zur dynamischen Veränderung dieses Seitenbereiches geholfen.
Danke im Voraus

mfg Jochen

  1. Hi,

    Auf einer Webseite möchte ich einen bestimmten Bereich definieren, welcher Texte und Bilder enthalten kann. Dieser Bereich soll sich durch Klicks auf die Buttons im Hauptmenü verändern können, wobei die restlichen Bereiche der Seite (Banner, Menü etc) unverändert bleiben sollen.
    Das ganze sollte ohne die Verwendung von Javascript oder iFrames geschehen.

    </hilfe/faq.htm#quelltext-auslagern>
    http://tut.php-quake.net/de/layout.html

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi,

      Auf einer Webseite möchte ich einen bestimmten Bereich definieren, welcher Texte und Bilder enthalten kann. Dieser Bereich soll sich durch Klicks auf die Buttons im Hauptmenü verändern können, wobei die restlichen Bereiche der Seite (Banner, Menü etc) unverändert bleiben sollen.
      Das ganze sollte ohne die Verwendung von Javascript oder iFrames geschehen.

      </hilfe/faq.htm#quelltext-auslagern>
      http://tut.php-quake.net/de/layout.html

      MfG ChrisB

      Ok danke für den 2. Link, der Inhalt dort ist leicht verständlich.
      Allerdings wird dort nicht erwäht, wie ich mittels Klick auf einen Link im Menü diese include Funktion aufrufen kann.
      Außer Anleitungen zu komplexen Formularfeldern oder ähnlichem finde ich dazu nichts brauchbares.

      1. Hi,

        Allerdings wird dort nicht erwäht, wie ich mittels Klick auf einen Link im Menü diese include Funktion aufrufen kann.

        Doch, das steht da auch:

        So kann z.B. der Newsbereich mit der URL index.php?section=news.php oder das Gästebuch mit index.php?section=guestbook.php geladen werden.

        Also einfach entsprechende Links setzen.

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. Hallo,

          So kann z.B. der Newsbereich mit der URL index.php?section=news.php oder das Gästebuch mit index.php?section=guestbook.php geladen werden.

          oder index.php?section=../../../../etc/passwd o.ä. :) wenn überhaupt ?section=index und dann in php folgendes:

            
          $filename = str_replace('/', '_', $_GET['section']).'.php';  
          if(file_exists($filename))  {  
              require_once($filename);  
          } else {  
              die('Die gewünschte Seite ist leider nicht verfügbar blablabla...');  
          }
          

          mfg, Flo

          --
          sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
          1. Hi,

            So kann z.B. der Newsbereich mit der URL index.php?section=news.php oder das Gästebuch mit index.php?section=guestbook.php geladen werden.
            oder index.php?section=../../../../etc/passwd o.ä. :) wenn überhaupt ?section=index und dann in php folgendes:

            Auch dazu steht was auf der verlinkten Seite.

            MfG ChrisB

            --
            „This is the author's opinion, not necessarily that of Starbucks.“
            1. Hi,

              So kann z.B. der Newsbereich mit der URL index.php?section=news.php oder das Gästebuch mit index.php?section=guestbook.php geladen werden.
              oder index.php?section=../../../../etc/passwd o.ä. :) wenn überhaupt ?section=index und dann in php folgendes:

              Auch dazu steht was auf der verlinkten Seite.

              MfG ChrisB

              Ich habe es nun einmal folgenderweise versucht:
              Meine index.php sieht so aus

              <?php
              include 'header.html';
              echo "<body>\n";
              include 'menue.html';

              switch($seite)
              {
               case "home": include("home.html"); break;
               case "home1": include("punkt1.html"); break;
               case "punkt2": include("punkt2t.html"); break;
               case "punkt3": include("punkt3.html"); break;
               default: include("home.html"); break;
              }

              echo "</body>\n";
              echo "</html>\n";
              ?>

              Die Links in meiner menue.html sehen dann beispielsweise so aus
              <a href="index.php?seite=punkt1">Punkt1</a>

              Wenn ich nun meine index.php öffne wird korrekterweise gleich home.html angezeigt, soweit funktioniert es also.
              Wenn ich jedoch auf einen anderen Link klicke passiert überhaupt nichts. Ich sehe keine Fehlermeldung oder sonstiges, es wird einfach weiterhin der Inhalt von home.html angezeigt.

              1. Hallo,

                Du musst switch($_GET['seite']) benutzen, und ich würde statt seite auch page benutzen, und außerdem probier mal folgendes:

                Du schreibst eine Datei template.html, in die du alles reinschreibst, wie es sein soll (z.N. Logo, footer, ...) und da, wo du den inhalt haben willst machst du z.B. <!--CONTENT--> (sodass beim direkten Laden der Seite template.html da nix angezeigt wird) und dann folgenden PHP-Code:

                  
                $template = file_get_contents('template.html');  
                $page = 'home.php';  
                  
                  
                switch($_GET['page']) {  
                    case 'contact': $page = 'contact.php'; break;  
                    // ...  
                }  
                  
                $t = explode("<!--CONTENT-->", $template);  
                echo $t[0];  
                require_once($page);  
                echo $t[1];  
                  
                
                

                eigentlich könnte man das <!--CONTENT--> auch ersetzten durch den Inhalt der Datei, den man ebenfalls mit file_get_contents ausliest, aber dann kann man in den seiten drin keinen PHP-Code ausführen...

                mfg, Flo

                --
                sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
                1. Alles klar, am GET hat's gelegen.
                  Vielen Dank für die Hilfe, jetzt läuft alles.

                2. hi,

                  switch($_GET['page'])

                  Spätestens wenn man das error_reporting auf E_ALL setzt, sieht man, das dass keine gute Idee ist.
                  Wenn dann doch

                  switch (isset($_GET['page']) ? $_GET['page'] : '/')

                  mfg

                  --
                  „Wenn du nicht bereit bist, dafür zu sterben, dann streiche das Wort »Freiheit« aus deinem Vokabular.“ -- Malcolm X
                  I Have a Dream
                  1. Hallo,

                    switch (isset($_GET['page']) ? $_GET['page'] : '/')

                    Sorry, hab nich getestet. Ich hab Fehler immer auf E_ALL | E_STRICT stehen, und da seh ich sowas, bzw. sowas wie das stück code eben würde ich nicht mal als Skript bezeichnen... Dafür müssten noch viel mehr Sicherheitsaspekte berücksichtigt werden, z.B, dass contact.php ein ordner sein kann...

                    mfg, Flo

                    --
                    sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
                    1. hi,

                      switch (isset($_GET['page']) ? $_GET['page'] : '/')
                      Sorry, hab nich getestet. Ich hab Fehler immer auf E_ALL | E_STRICT stehen, und da seh ich sowas, bzw. sowas wie das stück code eben würde ich nicht mal als Skript bezeichnen...

                      Deswegen mein Hinweis, der OP weiss nicht, dass es falsch ist, wenn er dann noch auf das error_reporting verzichtet, wird er es auch nie erfahren.

                      Dafür müssten noch viel mehr Sicherheitsaspekte berücksichtigt werden, z.B, dass contact.php ein ordner sein kann...

                      Das ist eine andere Geschichte; aber, wenn ich was include, weiss ich, was ich include, da brauch ich nicht noch zu prüfen, was dass sein könnte.

                      mfg

                      --
                      „Wenn du nicht bereit bist, dafür zu sterben, dann streiche das Wort »Freiheit« aus deinem Vokabular.“ -- Malcolm X
                      I Have a Dream
            2. Hallo,

              Auch dazu steht was auf der verlinkten Seite.

              Sorry, hatte es nicht gelesen...

              mfg, Flo

              --
              sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|