Ralf Breuning: Prüfen, ob include etwas zurückgibt

Hallo,

ich include mehrere Seiten, von denen allerdings immer eine einen Wert zurückgibt, der Rest keinen.

Also etwa so (im Beispiel enthält 2.php den Wert "Zwei"):

include '1.php';
include '2.php';
include '3.php';
...

Ausgabe:

Zwei

Jetzt kann es vorkommen, dass keine der Seiten einen Wert zurückgibt, der Besucher sieht also nur einen weißen Flecken :)

Besser wäre ein Mitteilung ala "Kein Wert vorhanden".

Wie kann ich jetzt innerhalb der Seite, in der ich include prüfen, ob kein include einen Wert zurückliefern (auf die includierten Seiten selbst habe ich keine Zugriff)?

Grüße

  1. Hallo,

    Jetzt kann es vorkommen, dass keine der Seiten einen Wert zurückgibt, der Besucher sieht also nur einen weißen Flecken :)

    Dies hört sich stark danach an, dass du die includes dynamisch generierst, was  meistens keine gute Idee ist (Stichwort: Code Injections).

    Sinnvoller wäre es eh, file_get_contents zu verwenden. Da biste sicher vor PHP Code, brauchst evt. nicht unnötig viele Dateien zu laden und kannst auch ganz einfach 'Kein Wert vorhanden' realisieren.

    Grüße
    Andavos

    1. Dies hört sich stark danach an, dass du die includes dynamisch generierst, was  meistens keine gute Idee ist (Stichwort: Code Injections).

      dynamisch include != Böse

      Sinnvoller wäre es eh, file_get_contents zu verwenden. Da biste sicher vor PHP Code, brauchst evt. nicht unnötig viele Dateien zu laden und kannst auch ganz einfach 'Kein Wert vorhanden' realisieren.

      Blödsinn!

      Zur eigentlichen Frage:
      http://de.php.net/manual/de/function.include.php

      Hans

      1. Hallo,

        Dies hört sich stark danach an, dass du die includes dynamisch generierst, was  meistens keine gute Idee ist (Stichwort: Code Injections).

        dynamisch include != Böse

        Ich habe nicht behauptet, dass dynamische includes automatisch böse sind, in den meisten Fällen sind sie aber keine gute Idee und Haupteinfallstor für Code Injections (was wirklich böse ist).
        Wenn man also nur ein wenig sicherheitstechnisch bedacht ist, wird man versuchen so wenig dynamische Includes wie möglich zu verwenden.

        Sinnvoller wäre es eh, file_get_contents zu verwenden. Da biste sicher vor PHP Code, brauchst evt. nicht unnötig viele Dateien zu laden und kannst auch ganz einfach 'Kein Wert vorhanden' realisieren.

        Blödsinn!

        Blödsinn!
        Es ist absolut schwachsinn, wenn man (ausschließlich) den Inhalt einer Datei ausgeben will, so wie man (bzw. ich) es dem aus dem Anfangsposts entnimmt, include zu verwenden. Dafür ist die Funktion nicht vorgesehen!

        Wie man dem PHP-Manual entnimmt:
        Die include() Anweisung bindet die angegebene Datei ein und wertet diese aus.

        So wie ich Ralf verstanden hat, ist er nur daran intressiert, dass der Inhalt der Dateien 1.php, 2.php usw. ausgegeben wird. Für soetwas bitte eine der zahlreichen Dateifunktionen von PHP benutzen, z.B. file_get_contents, readfile o.ä.

        Andavos

  2. Hallo!

    ich include mehrere Seiten, von denen allerdings immer eine einen Wert zurückgibt, der Rest keinen.

    Wenn du mit "zurückgeben" meinst, dass diese einen Output generieren, dann schau dir mal die Output Control Functions an. Insbesondere ob_start und ob_get_contents

    mfg
      frafu