Tabelle: Daten aus externer File importieren

  • hallo!
    habe ein kleines problem. Möchte in einer normalen html-seite eine Tabelle einfügen. Vorweg: ich möchte keine frames benutzen, auch keine inline-frames. Die Daten dieser Tabelle sollen aber von einer anderen seite kommen (zB ein html-file, in dem nur diese tabelle ist). Wie kann ich das automatisieren, dass er sich von dort die tabelle holt und normal, ohne frames, einbaut?
    wäre für jede hilfe dankbar.
    bei <object> macht er auch bildlaufleisten (also eigentlich einen frame), wie in diesem code:
    <object type="text/html" data="quelle.htm" width="200" height="200" border="0">
    <p><code>object</code>-Element wird nicht unterst&uuml;tzt bzw. die <a href="quelle.htm">Quelle</a> ist nicht verf&uuml;gbar.</p>
    </object>
    hilft also auch nicht weiter.


    Danke und an alle einen guten Rutsch!

  • Wenn es dir nur um die Bildlaufleisten geht, kannst du sie ja mit scrolling="no" absschalten.
    Sonst:
    Ich bin mir relativ sicher, dass das mit reinem HTML ohne Frames o.Ä. nicht geht. Clienseitig wäre sicher JavaScript eine Lösung, da gibts bestimmt irgendwas, serverseitig PHP mit dem include-Befehl. Funktioniert sehr einfach und effektiv.

    There's no better place than 127.0.0.1!

  • Geht mit HTML ohne (i)Frame / Object nicht.
    Du kannst das nur wie gesagt client- oder serverseitig lösen.
    Clientseitig mit JavaScript (XMLHttpRequest), serverseitig nach belieben.

    Die serverseitige Lösung ist auf jeden Fall zu bevorzugen, da nicht alles und jeder JS aktiviert hat / aktivieren kann.

    Hier z.B. ein kleiner Democode für JavaScript-Lösung für Mozilla.
    Hängt ein neues DIV mit dem Inhalt des Reqeusts an das Element mit der ID "container" dran.

    Microcontroller Tutor

  • Include() würde ich hier nicht nehmen.
    Wie gesagt ist nur eine Tabelle (also kein PHP-Code) in der Datei. Es soll auch niemals ein PHP-Code drinstehen so wie ich verstanden habe.
    Um das ganze sicher zu halten würde ich hier zu readfile() ( siehe http://de.php.net/manual/de/function.readfile.php ) greifen.
    Wie bei include() wird alles auf die Standardausgabe geschrieben, etwaiger PHP-Code wird hierbei __NICHT__ geparst.

    Microcontroller Tutor

  • Include() würde ich hier nicht nehmen.
    Wie gesagt ist nur eine Tabelle (also kein PHP-Code) in der Datei. Es soll auch niemals ein PHP-Code drinstehen so wie ich verstanden habe.
    Um das ganze sicher zu halten würde ich hier zu readfile() ( siehe http://de.php.net/manual/de/function.readfile.php ) greifen.
    Wie bei include() wird alles auf die Standardausgabe geschrieben, etwaiger PHP-Code wird hierbei __NICHT__ geparst.

    Kannst du bitte genauer erläutern, was an include() unsicher ist?

    There's no better place than 127.0.0.1!

  • Wie gesagt, bei include() wird der Inhalt der Datei gelesen etwaiger PHP-Code geparst und somit ausgeführt. Erst nachdem der PHP-Code geparst wurde wird das Ergebnis auf die Standardausgabe geschrieben.

    Bei readfile() wird nur der Inhalt der Datei gelesen und auf die Standardausgabe geschrieben. Sollte irgendein (potenziell schädlicher) PHP-Code in deiner Datei drinstecken, so wird er hier __nicht__ ausgeführt, sonder einfach der ganze Text ausgegeben.

    Da du ja sowieso nur Daten hast und keinen Code beim einlesen ausführen willst, ist hier include() absolut fehl am Platz und ist ein Sicherheitsrisiko. Gerade für ein Problem wie bei dir ist readfile() gemacht.

    Microcontroller Tutor

  • Kannst du bitte genauer erläutern, was an include() unsicher ist?


    Wenn in der inkludierten Datei PHP Code stehen würde, dann würde dieser ausgeführt werden. Also könnten zum Beipsiel vertrauliche Daten ausspioniert oder der Server in einen Spambot verwandelt werden.


    Wie gesagt ist nur eine Tabelle (also kein PHP-Code) in der Datei. Es soll auch niemals ein PHP-Code drinstehen so wie ich verstanden habe.


    Ja, die Angabe habe ich auch geshen, und genau deswegen habe ich include verwendet. Wenn PHP-Code vorkommen würde, der nicht ausgeführt werden darf, dann würde ich auch Dateioperationen verwenden.
    Angabe war aber: "ein html-file, in dem nur diese tabelle ist"
    Für Sicherheitaspekte haben wir mitunter viel zu wenig Information um brauchbare Tipps zu liefern.

  • Ja, die Angabe habe ich auch geshen, und genau deswegen habe ich include verwendet. Wenn PHP-Code vorkommen würde, der nicht ausgeführt werden darf, dann würde ich auch Dateioperationen verwenden.


    Safety first. Ich lass mein Auto auch nicht offen herumstehen und sperrs nur zu wenn ich irgendeinen mit Brechstange und Strumhaube herumlaufen seh.

    Microcontroller Tutor

  • Da du ja sowieso nur Daten hast und keinen Code beim einlesen ausführen willst, ist hier include() absolut fehl am Platz und ist ein Sicherheitsrisiko.

    readfile() verlagert das Sicherheitsrisiko mitunter nur.
    Wie gesagt, zuwenig Information von der Aufgabenstellung um diese Aspekte konkret diskutieren zu können.

    Aber "verwende readfile statt include damit alles sicher ist" ist imho blauäugig und leicht fahrlässig.

  • Kannst du bitte genauer erläutern, was an include() unsicher ist?

    Der Threadersteller schreibt, er möchte 1:1 Inhalte aus einer anderen Seite übernehmen. Wenn du diese mit include() einbindest, und das einzubindende Dokument enthält nur HTML, dann ist alles in Butter.

    Wenn die andere Seite aber PHP-Code ausgibt, wird dieser auf deinem Server ausgeführt. Das bedeutet, dass jeder, der die Ausgabe auf dem Server, von dem der einzubettende Inhalt geholt wird, manipulieren kann, beliebigen PHP-Code auf deinem Server ausführen kann. Wenn das kein Sicherheitsloch ist, weiß ich's auch nicht.

    Nicht umsonst gibt's Konfigurationseinstellungen wie allow_url_fopen und allow_url_include, mit denen man solche Dinge zulassen kann oder nicht. Diese Einstellungen sind standardmäßig deaktiviert. Details siehe zum Beispiel http://at.php.net/manual/en/features.remote-files.php

    EDIT: Hm. Ich bin anscheinend viel zu langsam. :wein:

  • Safety first. Ich lass mein Auto auch nicht offen herumstehen und sperrs nur zu wenn ich irgendeinen mit Brechstange und Strumhaube herumlaufen seh.


    Da stimme ich dir zu.

    Wir bräuchten mehr Information um zu entscheiden ob readfile, include oder etwas ganz anderes die richtige Methode ist.
    Readfile birgt ebenso Sicherheitsrisiken.

  • Wenn die andere Seite aber PHP-Code ausgibt, wird dieser auf deinem Server ausgeführt. Das bedeutet, dass jeder, der die Ausgabe auf dem Server, von dem der einzubettende Inhalt geholt wird, manipulieren kann, beliebigen PHP-Code auf deinem Server ausführen kann. Wenn das kein Sicherheitsloch ist, weiß ich's auch nicht.


    Das Sicherheitsloch liegt dann aber hauptsächlich "auf dem Server, von dem der einzubettende Inhalt geholt wird" wenn dort jemand die Inhalte Manipulieren kann. Das wäre natürlich ein Sicherheitsloch.
    Aber readfile bietet auch Angriffsmethoden wenn ich eine Datei einlese. Wenn ich rausfinde, dass nicht include sondern readfile verwendet wird, dann brauche ich nur die Datei demenstprechend verändern (keinen PHP-Code einbinden sondern readfile ein wenig im Arbeitsspeicher rumjagen).

    Und wie Paulchen richtig angemerkt hat, kommt es auch noch auf die Konfiguration von PHP an.

  • danke für die vielen antworten!
    probiers grad mit include wie bei

    Der vollständigkeithalber hier der PHP Code:

    PHP
    <!-- here be html -->
    <? include('woswasi_tabelle.htm'); ?>
    <!-- here be html -->

    :verycool:

    da ja wirklich nur eine einfache tabelle in der html-seite ist (mit links und 1grafik) wird nicht mehr benötigt und somit auch nicht die unten angesprochenen sicherheitsrisiken...

    hier wäre auch noch eine anleitung: http://www.webdesign.rudomazin.de/tutorials/php-…att-frames.html

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!