1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Tabelle: Daten aus externer File importieren

  • huevo
  • 27. Dezember 2008 um 16:04
  • Unerledigt
  • huevo
    4
    huevo
    Mitglied
    Reaktionen
    1
    Punkte
    171
    Beiträge
    20
    • 27. Dezember 2008 um 16:04
    • #1

    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!

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 27. Dezember 2008 um 17:10
    • #2
    Zitat von huevo

    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!

    Alles anzeigen

    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!

  • Snafu
    5
    Snafu
    Mitglied
    Reaktionen
    3
    Punkte
    253
    Beiträge
    46
    • 27. Dezember 2008 um 21:01
    • #3

    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.

    HTML
    <script type="text/javascript">
    function getData()
    {
        var xreq = new XMLHttpRequest();
        if(xreq)
        xreq.open("GET", "foo.dat", false);
        xreq.send(null);
        if(xreq.status == 0) {
            var container = document.createElement('div');
            container.innerHTML = xreq.responseText;
            document.getElementById('container').appendChild(container);
        }
    }
    </script>
    Alles anzeigen

    Microcontroller Tutor

  • DomiN
    8
    DomiN
    Mitglied
    Reaktionen
    5
    Punkte
    585
    Beiträge
    111
    • 28. Dezember 2008 um 15:30
    • #4

    Der vollständigkeithalber hier der PHP Code:

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

    :verycool:

    It's physically impossible to lick your weenis, unless your a freak.

    DONE-IT TIENODhttp://www.tienod.com DI

  • Snafu
    5
    Snafu
    Mitglied
    Reaktionen
    3
    Punkte
    253
    Beiträge
    46
    • 28. Dezember 2008 um 16:18
    • #5

    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

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 28. Dezember 2008 um 16:40
    • #6
    Zitat von Snafu

    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!

  • Snafu
    5
    Snafu
    Mitglied
    Reaktionen
    3
    Punkte
    253
    Beiträge
    46
    • 28. Dezember 2008 um 16:45
    • #7

    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

  • DomiN
    8
    DomiN
    Mitglied
    Reaktionen
    5
    Punkte
    585
    Beiträge
    111
    • 28. Dezember 2008 um 16:46
    • #8
    Zitat von java-girl

    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.

    Zitat von Snafu


    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.

    It's physically impossible to lick your weenis, unless your a freak.

    DONE-IT TIENODhttp://www.tienod.com DI

  • Snafu
    5
    Snafu
    Mitglied
    Reaktionen
    3
    Punkte
    253
    Beiträge
    46
    • 28. Dezember 2008 um 16:48
    • #9
    Zitat von DomiN

    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

  • DomiN
    8
    DomiN
    Mitglied
    Reaktionen
    5
    Punkte
    585
    Beiträge
    111
    • 28. Dezember 2008 um 16:50
    • #10
    Zitat von Snafu

    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.

    It's physically impossible to lick your weenis, unless your a freak.

    DONE-IT TIENODhttp://www.tienod.com DI

  • Paulchen
    1
    Paulchen
    Gast
    • 28. Dezember 2008 um 16:51
    • #11
    Zitat von java-girl

    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:

  • DomiN
    8
    DomiN
    Mitglied
    Reaktionen
    5
    Punkte
    585
    Beiträge
    111
    • 28. Dezember 2008 um 16:52
    • #12
    Zitat von Snafu

    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.

    It's physically impossible to lick your weenis, unless your a freak.

    DONE-IT TIENODhttp://www.tienod.com DI

  • DomiN
    8
    DomiN
    Mitglied
    Reaktionen
    5
    Punkte
    585
    Beiträge
    111
    • 28. Dezember 2008 um 16:57
    • #13
    Zitat von Paulchen

    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.

    It's physically impossible to lick your weenis, unless your a freak.

    DONE-IT TIENODhttp://www.tienod.com DI

  • Snafu
    5
    Snafu
    Mitglied
    Reaktionen
    3
    Punkte
    253
    Beiträge
    46
    • 28. Dezember 2008 um 16:59
    • #14

    Ach ja, PHP. Leicht zu lernen, schwer zu beherrschen :shinner:

    Microcontroller Tutor

  • DomiN
    8
    DomiN
    Mitglied
    Reaktionen
    5
    Punkte
    585
    Beiträge
    111
    • 28. Dezember 2008 um 17:03
    • #15
    Zitat von Snafu

    Ach ja, PHP. Leicht zu lernen, schwer zu beherrschen :shinner:


    :thumb:
    Es gibt leider wenig Lektüre die sich mit den Sicherheitsrisiken von PHP im Detail beschäftigt. Ich kenne leider nur sehr seichte Abhandlungen.
    Bugtraq und diverse Mailinglistn sind da deutlich brauchbarer.

    It's physically impossible to lick your weenis, unless your a freak.

    DONE-IT TIENODhttp://www.tienod.com DI

  • huevo
    4
    huevo
    Mitglied
    Reaktionen
    1
    Punkte
    171
    Beiträge
    20
    • 3. Januar 2009 um 11:24
    • #16

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

    Zitat von DomiN

    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

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

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

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung