Stefan: Mit Link externe HTML-Datei in definierten Bereich laden?

Hallo,

als Anfänger tue ich mich "etwas" schwer:

Habe auf der linken Seite meine Links, und möchte damit auf der rechten Seite (Tabellenbereich) externe HTML-Dateien hinein laden.

Kann mir bitte jemand helfen?

Danke!

  1. Hallo Stefan!

    Habe auf der linken Seite meine Links, und möchte damit auf der rechten Seite (Tabellenbereich) externe HTML-Dateien hinein laden.

    Du übergibst in dem Link am einfachsten irgendne Variable, und wertest diese dann aus.

    Je nachdem, was Deine Auswertung ergibst includierst du verschiedene Inhalte.

    (Lesetips:
      http://de.php.net/manual/de/language.variables.predefined.php (vor allem _GET),
      http://de.php.net/manual/de/control-structures.php,
      http://php.net/include)

    Kann mir bitte jemand helfen?

    Ich hoffe, daß ich helfen konnte.

    Schau dir doch am besten mal ein paar PHP-Tutorials an, wär bestimmt nicht verkehrt.
    Für PHP-Anfänger ist http://dclp-faq.de/ auch mit Sicherheit interessant.
    Ein weiters Tutorial, das Du Dir mal anschauen könntest ist http://php-center.de/phpschulung/index.htm.
    Weitere Interessante Tutorials findest du z.B. auf http://dynamic-webpages.de/05.tutorials.php oder http://www.phpwelt.de/tutorials/tarchiv.php.
    (natürlich gibt es auch noch viele weitere Tutorials, doch die kannst du dann ja alleine entdecken ;)

    MfG
    Götz

    --
    Losung und Lehrtext für Mittwoch, 1. Oktober 2003
    Der Herr sprach: Ich will hinfort nicht mehr die Erde verfluchen um der Menschen willen; denn das Dichten und Trachten des menschlichen Herzens ist böse von Jugend auf. (1.Mose 8,21)
    Es gibt keine Verdammnis für die, die in Christus Jesus sind. (Römer 8,1)
    (http://www.losungen.de/heute.php3)
    1. Hallo Götz,

      erstmal danke für die umfangreichen Linktippts. Habe mir die Sachen auch angeschaut, aber -da ich erst seit gestern mit PHP beschäftige- "nix gerafft".

      Ich suche etwas einfaches in der Art:

      <?php
      include("test.htm")
      ?>

      Aber dasß ich diesen bereits geladenen Inhalt ("test.htm") mit einem Link auf derselben Seite (!) auswechseln kann. "test.htm" soll dann ersetzt werden durch "test_2.htm".

      Könnte mir bitte jemand die Lösung meines Problems (Code!) posten?

      Vielen Dank!!! :-)

      1. Hallo Stefan!

        erstmal danke für die umfangreichen Linktippts. Habe mir die Sachen auch angeschaut, aber -da ich erst seit gestern mit PHP beschäftige- "nix gerafft".

        Naja. Fang am besten vorne an ... les dir mal so ein grundlegendes Tutorial durch, und versuche dann gleich das ,was dort gesagt wird nachzubauen ...

        Könnte mir bitte jemand die Lösung meines Problems (Code!) posten?

        nuja, wir wollen mal nicht so sein, und Dir ein grobes Gerüst geben:
        <?php
        if(isset($_GET['seite']) && $_GET['seite'] == 'test')
          {
            include($_GET['seite'].'.html');
          }
        else
          {
            include('start.html');
          }
        ?>

        Ein Link, bei dem test.html eingebunden wird würde also auf index.php?seite=test verweisen (vorrausgesetzt, die PHP-Datei heißt index.php).

        Genaueres zu includes usw. kannst Du ja entweder direkt im Manual, oder für Anfänger vielleicht besser erstmal in einem Tutorial nachlesen.

        MfG
        Götz

        --
        Losung und Lehrtext für Donnerstag, 2. Oktober 2003
        Herr, Gott Zebaot, tröste uns wieder; lass leuchten dein Antlitz, so genesen wir. (Psalm 80,20)
        Zu den Frauen traten zwei Männer mit glänzenden Kleidern. Sie aber erschraken und neigten ihr Angesicht zur Erde. Da sprachen die zu ihnen: Was sucht ihr den Lebenden bei den Toten? Er ist nicht hier, er ist auferstanden. (Lukas 24,4-6)
        (http://www.losungen.de/heute.php3)
        1. Hallo Götz,

          mit diesem Script rufe ich das Dokument automatisch auf. Es soll aber so sein, das ich einen Link betätige, und der Inhalt, der standardmäßig in den Tabellenbereich geladen wurde (auch über PHP:)

          <?php
           include("haupt.htm")
           ?>

          ersetzt wird durch den Inhalt einer anderen HTML-Datei.

          Was mir AUCH fehlt, ist der Code für den Link, mit dem ich den Austausch "starte".

          Hättest Du da vielleicht eine Lösung?

          Stefan

          1. Hallo Stefan!

            mit diesem Script rufe ich das Dokument automatisch auf. Es soll aber so sein, das ich einen Link betätige, und der Inhalt, der standardmäßig in den Tabellenbereich geladen wurde (auch über PHP:)

            Ähm?

            Also, mein Codeschnipsel, den ich gepostet hab macht folgendes (ich hätte ihn vielleicht doch auskommentieren sollen ...):
            Er prüft, ob $_GET['seite'] gesetzt ist bzw .ob $_GET['seite'] den Wert "test" hat (das macht das if im Schnipsel).
            (Übrigens: $_GET['seite'] ist die Variable, die mit ?seite=wert in der Adreßzeile übergeben wird)
            Wenn dies so ist, wird test.html includiert, wenn dies nicht so ist (Jetzt sind wir beim else aus dem Schnipsel), wird start.html bzw. haupt.html oder wie Deine Start- bzw. Standardseite auch immer heißen mag, includiert.
            Du mußt natürlich diesen Codeschnipsel an der richtigen Stelle einbauen, also genau dort, wo Inhalt ersetzt werden soll.

            Was mir AUCH fehlt, ist der Code für den Link, mit dem ich den Austausch "starte".

            Ja, den Link hab ich ja dazugeschrieben.
            Der Austausch wird dadurch "gestartet", daß Du die Variable seite mit einem entsprechenden Wert an das PHP-Script übergibst.

            Hättest Du da vielleicht eine Lösung?

            Ähm, ja.
            Siehe mein letztes Posting, das ist eigentlich alles, was Du brauchst, um eine ganz einfach Ersetzung zu machen.

            Ich hoffe, es war nun ein wenig verständlicher.

            MfG
            Götz

            --
            Losung und Lehrtext für Donnerstag, 2. Oktober 2003
            Herr, Gott Zebaot, tröste uns wieder; lass leuchten dein Antlitz, so genesen wir. (Psalm 80,20)
            Zu den Frauen traten zwei Männer mit glänzenden Kleidern. Sie aber erschraken und neigten ihr Angesicht zur Erde. Da sprachen die zu ihnen: Was sucht ihr den Lebenden bei den Toten? Er ist nicht hier, er ist auferstanden. (Lukas 24,4-6)
            (http://www.losungen.de/heute.php3)
          2. hi,

            Was mir AUCH fehlt, ist der Code für den Link, mit dem ich den Austausch "starte".

            wenn du, wie götz es vorgeschalgen hast, mit GET-parametern arbeitest, dann sehen deine links so aus:
            index.php?seite=test.htm
            index.php?seite=kontakt.htm
            index.php?seite=info.htm

            sie zeigen alle wieder auf das selbe script (unter den namen index.php), und dort hast du dann nach dem klicken eines solchen links wie oben eine variable $_GET['seite'] zu verfügung, die dann eben den text(!) "test.htm", "kontakt.htm" oder "info.htm" als string enthält.

            diese variable fragst du jetzt mit einer if-abfrage ab, und wenn "test.htm" drinsteht, dann führst du eben auch den befehl
            include "test.htm"
            aus ...

            Hättest Du da vielleicht eine Lösung?

            du solltest auf götz' ratschlag hören, und dich zunächst einmal mit den absoluten grundlagen von php beschäftigen.
            eine recht gute deutschsprachige anlaufstelle dafür ist http://www.schattenbaum.net/php/.
            und das offizielle manual unter http://www.php.net/manual/de/ solltest du auch immer zum nachschlagen der genauen schreibweise und verwendung von befehlen verwenden, bevor du weitere fragen stellst.

            gruss,
            wahsaga

            1. Hallo wahsaga!

              index.php?seite=test.htm [...]

              Naja, nicht ganz ;)
              Ich hab include($_GET['seite'].'html') geschrieben glaube ich, also müssen die Links ohne Endung sein. (man sollte eh prüfen _was_ da denn für ne Seite übergeben wird ... nicht daß man alles mögliche includieren kann!)

              Ansonsten habe ich Deinem Posting nichts mehr hinzuzufügen ;)

              MfG
              Götz

              --
              Losung und Lehrtext für Donnerstag, 2. Oktober 2003
              Herr, Gott Zebaot, tröste uns wieder; lass leuchten dein Antlitz, so genesen wir. (Psalm 80,20)
              Zu den Frauen traten zwei Männer mit glänzenden Kleidern. Sie aber erschraken und neigten ihr Angesicht zur Erde. Da sprachen die zu ihnen: Was sucht ihr den Lebenden bei den Toten? Er ist nicht hier, er ist auferstanden. (Lukas 24,4-6)
              (http://www.losungen.de/heute.php3)
              1. hi,

                Naja, nicht ganz ;)
                Ich hab include($_GET['seite'].'html') geschrieben glaube ich, also müssen die Links ohne Endung sein.

                ich hatte mich nicht 1:1 auf dein beispiel bezogen.
                ich sagte, wenn du ?seite=test.htm übergibst, hast du in $_GET['seite'] nachher auch "test.htm" drinstehen, und kannst entsprechend reagieren ...

                (man sollte eh prüfen _was_ da denn für ne Seite übergeben wird ... nicht daß man alles mögliche includieren kann!)

                jepp, ganz ungeprüft ist harakiri.

                gibt viele einfache möglichkeiten, z.b. erlaubte seitennamen in ein array packen und mit in_array() abfragen, ob "erlaubt", oder nur dateien aus dem selben verzeichnis zulassen, oder oder oder ...

                gruss,
                wahsaga

                1. Hallo Götz,

                  ich weiß: Ich bin blöd! Ich hab´ rumprobiert, aber ich kriegs nicht hin. Ich baue gerade die Referenzseite meiner neuen Site, und bevor ich die nun 30x kopiere, muß das funktionieren. Ich will ja PHP lernen - nur muß ich erst mal die Seite ins Netz stellen (das wäre schon dringend).

                  Bitte Hilfe!

                  Die Datei heißt "ie.htm".
                  Habe jetzt als Link;

                  <a href="ie.php?seite=artikel.htm?aktion=starte">Artikel in rechten Bereich laden</a>

                  ... und im Tabellenbereich (rechte Seite in derselben Datei):

                  <?php
                  include("haupt.htm")
                  ?>

                  <?php
                  if ($GET['aktion'] == "starte")
                  {
                  include("artikel.htm")
                  }
                  ?>

                  Der obere include ("haupt.htm") wird automatisch geladen, wenn die Datei "ie.htm" aufgerufen wird. Mit dem Link will ich den Inhalt in diesem Tabellenbereich ersetzen durch den Inhalt der Datei "artikel.htm". Aktuell zeigt die Datei "ie.htm" keinen Inhalt mehr!

                  Danke!!!

                  Stefan

                  1. Hallo Stefan!

                    Wegen 30 Seiten so rumzustressen, also bitte!
                    30 Seiten sind per Search&Replace in nullkomanix geändert, also soo dringend ist es dann doch nicht.

                    <a href="ie.php?seite=artikel.htm?aktion=starte">Artikel in rechten Bereich laden</a>

                    Hast Du eigentlich mal irgendeins der PHP-Tutorials gelesen?
                    Falls ja, solltest Du wissen, daß man mehrere Variablen mit & trennt, und nicht mit ? (als Link in HTML sollte man dann aber & udn nicht nur & schreiben, weil das mag der Valli nicht so).

                    ... und im Tabellenbereich (rechte Seite in derselben Datei):

                    Also, wo Du welchen Teil ersetzen willst ist völlig egal, im Prinzip, denn das Prinzip ist immer das selbe.

                    Ich verstehe
                      1. nicht, was Du da für ein Script gebaut hast,
                      2. nicht, wo jetzt das Problem genau liegt
                      und 3. nicht, warum du nicht einfach mein Beispiel genommen und angepaßt hast.

                    Ehrlich gesagt:
                    Ich weiß nicht, wie ich Dir jetzt noch helfen kann.
                    (Nein, deine Seite werde ich Dir nicht bauen, ich hab Dir schon ein kompletten verwertbaren Codeschnipsel geliefert, der eigentlich genau das macht, was Du wolltest.)

                    MfG
                    Götz

                    --
                    Losung und Lehrtext für Freitag, 3. Oktober 2003
                    Lobe den Herrn, meine Seele, und vergiss nicht, was er dir Gutes getan hat. (Psalm 103,2)
                    Einer unter den Aussätzigen, als er sah, dass er gesund geworden war, kehrte er um und pries Gott mit lauter Stimme und fiel nieder auf sein Angesicht zu Jesu Füßen und dankte ihm. Und das war ein Samariter. (Lukas 17,15.16)
                    (http://www.losungen.de/heute.php3)
                  2. hi,

                    Aktuell zeigt die Datei "ie.htm" keinen Inhalt mehr!

                    dann solltest du dir zunächst mal den html-quelltext ansehen, den der browser bekommt.

                    mich beschleicht grade das gefühl, dass du vielleicht komplette html-seiten inkludest, also nach dem einbinden von haupt.htm und artikel.htm mehrmals <html>, <body> und co. in deiner "seite" hast ...

                    gruss,
                    wahsaga