KARL_LIEB: php includes dynamisch machen?

hi

meine frage besteht darin includierte php inhalte z.B.

<td><?  include("inhalt1.inc");  ?></td><!-- incl des ersten Inhalts-->

hier zum beispiel das "inhalt1" ...

koennen ja bekanntlich auch andere Inhalte sein!
dynamisch zu aendern !

das heisst das ich will das auf knopfdruck z.b. "<a href>" ein anderes include aus meiner html datei aufgerufen wird !!

!!!inhalt1.inc in inhalt2.inc aendern!!

und das ohne eine komplett neue seite aufzurufen ....

wenn jemand weiss wo ich da mal nachschauen kann bzw womit ich da rann gehen soll z.b javascript oder auch php ?????

ueber eine antwort wuerd ich mich freuen bb karl_lieb

  1. index.php

    <table>
    <tr>
    <td><? include ($page."inc"); ?></td>
    </tr>
    <tr>
    <td><a href="index.php?page=inhalt2">Inhalt2</a>
    </tr>
    </table>

    1. Hallo Karl,

      <table>
      <tr>

      <td><? include ($_GET['page'].'.inc'); ?></td>

      </tr>
      <tr>
      <td><a href="index.php?page=inhalt2">Inhalt2</a>
      </tr>
      </table>

      Mit PHP ist es ohne komplettes Neuladen des Dokuments leider nicht möglich. Das würde aber mit JS funktionieren. Allerdings haftet jedem Konstrukt aus Javascript immer der Nachruf der "Krücke" an. Das oben dargelegte Beispiel ist immer einsatzfähig - JS nicht.

      Wenn es Dir darum geht Traffic zu sparen, dann ist JS eine gute, aber auch eine sehr schwierig zu programmierende Möglichkeit. Dazu mache Dich mit DOM vertraut http://de.selfhtml.org/javascript/index.htm.
      Insbesondere brauchst Du:

      createElement() http://de.selfhtml.org/javascript/objekte/document.htm#create_element
      appendChilde()  http://de.selfhtml.org/javascript/objekte/node.htm#append_child
      removeChild()   http://de.selfhtml.org/javascript/objekte/node.htm#remove_child
      innerHTML       http://de.selfhtml.org/javascript/objekte/all.htm#inner_html

      Allenvoran aber:

      document.getElementsByTagName("script")[0].src

      Dadurch werden nur noch Deine benötigten Variablen (Texte, etc.) im Hintergrund geladen und nicht mehr das ganze Dokument.

      Gruß aus Berlin!
      eddi

  2. Hi!

    include("inhalt1.inc");

    Kleine Anmerkung hierzu: Das ist ganz übel!
    Weißt Du, was passiert, wenn ich jetzt in der Adresszeile meines Browsers www.deine_seite/inhalt1.inc eingebe? Ich erhalte den Quellcode deiner include-Datei.
    Das mag vielleicht bei dieser Datei nicht schlimm sein, aber wenn es sich um einen geschützen Bereich handelt, dann komme ich auf diesem Weg vielleicht an Links, die ich nicht sehen sollte oder ich finde vielleicht sogar Passworte in dieser Datei.
    Vielleicht hast Du aber auch ein include-File mit dem Du die Verbindung zu einer SQL-Datenbank herstellst. Dann könnte man so ruckzuck die Zugangsdaten zu dieser Datenbank erhalten.
    Nenn deine Datei datei.inc.php! Wenn die Endung php ist, dann geht PHP an die Datei ran, sobald sie aufgerufen wird. Das kann bei include-Files in vielen Fällen zwar zu Fehlermeldungen führen, wenn sie direkt aufgerufen werden, aber in keinem Fall wird der Quellcode preisgegeben.

    Gruß, rob

    1. Hi Rob!

      include("inhalt1.inc");

      Kleine Anmerkung hierzu: Das ist ganz übel!
      Weißt Du, was passiert, wenn ich jetzt in der Adresszeile meines Browsers www.deine_seite/inhalt1.inc eingebe? Ich erhalte den Quellcode deiner include-Datei.

      Kleine Anmerkung hierzu: Wenn es so übel ist, dann bringe bitte auch die Abhilfe!
      .htaccess => Inhalt:
      <Files *.inc>
        Rule
      </Files>

      Und bedenke auch, das es soetwas, wie include_path http://de.php.net/manual/de/configuration.directives.php#ini.include-path gibt, der außer Reichweite gelegt werden kann.

      Gruß aus Berlin!
      eddi