Ankündigung

Einklappen
Keine Ankündigung bisher.

Include - Wie HTML Dateien einbinden?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Include - Wie HTML Dateien einbinden?

    Hi,

    ich habe eine umfangreiche Kochrezeptsammlung, welche bisher in einem "iFrame" läuft. Nun möchte ich sie mittels "include" in eine PHP Seite einbauen.

    Mit dem folgenden Befehl wird die HTML Datei mit der Rezeptliste eingebunden. Das funktioniert auch bei mir auf XAMPP :

    Code:
    <?php
    include("../includetest/kochrezepte/demo_Index.html");?>
    </a>
    Dies ist die eingebundene Seite "demo_Index.html" mit der Rezeptliste, welche in der oberen Seite angezeigt wird:

    Code:
    <html>
    <head>
    <title>Rezepte</title>
    </head>
    <a href="../includetest/kochrezepte/demo.html">Aldermanns Truthahn
    
    
    <a href="../includetest/kochrezepte/demo_2.html">Alkoholfreie Paradies-Bowle
    </body>
    </html>
    Klicke ich auf den Rezeptlink, öffnet sich die Datei im Browser. Wie schaffe ich es, das die angeklickte Rezeptseite auch in die obere Seite eingebunden wird? Bei "iframe" würde ich es mit "target" machen. Wie mache ich es bei PHP 4 und "include"?

    Mit freundlichen Grüßen
    Pedro


  • #2
    Der Browser erhält das komplett zusammengestellte Dokument. Wie es zusammgestellt wurde, weiss der Browser nicht, interessiert ihn auch nicht.
    Relative URLs im Dokument beziehen sich auf die url, die aufgerufen wurde.
    Du möchtest wahrscheinlich immer die selbe Datei aufgerufen bekommen, die dann abhängig vom benutzen Link jeweils die entsprechende Seite aufruft.
    Das geht zum Beispiel über Parameter im Link.
    Angenommen Dein php Skript heisst Rezepte.php, dann kannst Du einen Link
    <a href="Rezepte.php?rezept=Gazpacho1">
    in das Dokument schreiben.
    In Rezepte.php wird dieser Parameter dann ausgewertet.
    $rezeptdatei = '../includetest/kochrezepte/' . basename($_GET['rezept']) . '.html';
    Da sollte dann beim Beispiel ../includetest/kochrezepte/Gazpacho1.html als Pfad rauskommen. Damit kannst Du dann jeweils incolude/require/readfile aufrufen.

    basename() liefert den reinen Dateinamen zurck. Wenn jemand den url so abändert, dass rezept=../../geheime.datei übertragen wird, könnten sonst unerwünscht falsche Daten ausgeliefert werden.

    Kommentar


    • #3
      wenn du eine datei einbindest sollte dies keine vollständige html-datei mit <html>, <head> und <body>-tags sein [wie z.b bei einer frameeinbindung], weil diese elemente ja wahrscheinlich schon auf der hauptseite vorhanden sind, schau dir einfach mal den erzeugten quelltext im browser an und ändere dann die zu inkludierende datei - wenn nötig - wie folgt ab:

      Code:
      <a href="">Aldermanns Truthahn
      
      
      <a href="">Alkoholfreie Paradies-Bowle

      Kommentar

      Lädt...
      X