Includete Inhalte werden nicht mehr angezeigt?

  • Moin,

    ich hatte mir einige Pages erstellt in denen ich eigene PHP Dateien include (mit einem entsprechenden Plugin, das PHP in Posts/Pages erlaubt), das waren einfach nur ein paar Spielereien wie z.B. ein .htaccess Generator, also nichts großes, und das hat auch immer einwandfrei funktioniert.

    Nun habe ich vor einiger Zeit den Provider gewechselt und dabei auch gleich WP mal wieder aktualisiert (hatte mich aus Zeitgründen schon ein paar Monate nicht mehr wirklich um die Seite gekümmert, kA wie viele Versionen ich da ausgelassen habe) und seitdem werden die Inhalte, die ich include, nicht mehr angezeigt, als wären sie gar nicht da (sie werden aber includet und auch ausgeführt, wenn ich in den Dateien ein "exit;" ans Ende packe wird alles angezeigt, nur halt nicht innerhalb der WP Seite, ohne das exit wird einfach die Page so angezeigt, als gäbe es den Include nicht).

    Gab es in einer der letzten WP-Versionen vielleicht eine Änderung, die so etwas verhindert? Und falls ja, wie kann ich das deaktivieren?

    Bitte Forenregeln beachten

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren


  • ich hatte mir einige Pages erstellt in denen ich eigene PHP Dateien include (mit einem entsprechenden Plugin, das PHP in Posts/Pages erlaubt), das waren einfach nur ein paar Spielereien wie z.B. ein .htaccess Generator, also nichts großes, und das hat auch immer einwandfrei funktioniert.

    Die paar Spielereien können Sicherheitslücken darstellen - ergo: Vorsicht!


    Nun habe ich vor einiger Zeit den Provider gewechselt ... und seitdem werden die Inhalte, die ich include, nicht mehr angezeigt, als wären sie gar nicht da (sie werden aber includet und auch ausgeführt, wenn ich in den Dateien ein "exit;" ans Ende packe wird alles angezeigt,

    Dann nach den Fehler nach dem "exit;" in der "includet" Datei löschen. Fehler könnte zum Beispiel eine leerezeile nach dem abschließnenden ?> sein. hier einfach ?> löschen

    oder die Datei nur einmal laden.
    Lösung include-once
    https://www.php.net/manual/de/function.include-once.php

    oder evtl. ist auch require-once besser
    https://www.php.net/manual/de/function.require-once.php


    nur halt nicht innerhalb der WP Seite, ohne das exit wird einfach die Page so angezeigt, als gäbe es den Include nicht).

    Mit [size=24]PHP Debugging [/SIZE]
    https://www.php.net/manual/de/debugger.php
    möchtest du dich auch nicht belasten?

    Mit offenen Augen träumen

  • Die paar Spielereien können Sicherheitslücken darstellen - ergo: Vorsicht!


    Keine Sorge, was das angeht ist da alles in Ordnung :)

    Dann nach den Fehler nach dem "exit;" in der "includet" Datei löschen. Fehler könnte zum Beispiel eine leerezeile nach dem abschließnenden ?> sein. hier einfach ?> löschen


    Danach ist kein Fehler, ich habe das Testweise einmal nach dem PHP Code eingefügt und einmal ganz am Ende (keine Leerzeile mehr danach), nach dem PHP Code wird in der Datei noch HTML ausgegeben (ein Formular, in das die Informationen eingegeben werden, aus denen in diesem Beispiel die .htaccess / .htpasswd generiert werden). Aber selbst wenn ich da eine Datei include, die nichts enthält außer

    PHP
    <?php
      echo 'test';


    wird das nicht ausgegeben.

    oder die Datei nur einmal laden.


    Passiert bereits so, also per include_once().

    Mit [size=24]PHP Debugging [/SIZE]
    https://www.php.net/manual/de/debugger.php
    möchtest du dich auch nicht belasten?


    Ist natürlich ebenfalls bereits passiert, an den includeten Dateien ist alles in Ordnung, sie haben ja zu einem auch vorher einwandfrei funktioniert und zum anderen tun sie das auch jetzt noch wenn ich sie direkt aufrufe, nur wenn sie in einer WordPress Page includet werden passiert gar nichts, also auch der enthaltene HTML Code wird nicht angezeigt (auch nicht im Quelltext), nicht nur das PHP nicht ausgeführt.

    Daher hatte ich ja vermutet, dass vielleicht mit einer der letzten WP Versionen dahingehend etwas geändert wurde, z.B. ein "Sicherheitsfeature" hinzugekommen ist, das dafür sorgt, dass auch wirklich nur das in der Page / dem Post ausgegeben wird, das auch in der DB steht (oder irgendetwas in der Art).

    Bitte Forenregeln beachten

  • Das mit dem Sicherheitsrisiko bezog sich nicht auf die "Spielereien" selbst, sondern auf die Art, wie du die einbindest. PHP-Code innerhalb von Posts und Pages auszuführen *ist* ein Sicherheitsrisiko.

    Ist bei deinem neuen Provider eventuell eval() deaktiviert?

    Edit: Warum bindest du die "Spielereien" nicht "sauber" z.B. als Shortcode ein?

    Einmal editiert, zuletzt von danielgoehr (17. August 2019 um 16:25)

  • Naja, ich bin ja der einzige der das kann / darf von daher sehe ich da kein Problem.

    Das mit dem Shortcode war aber ein guter Tipp, danke, das Plugin, das ich benutze um PHP ausführen zu können, bietet nämlich auch die Möglichkeit Snippets zu erstellen und diese dann als Shortcode in die Page einzufügen, scheint auch zu funktionieren, wie es aussieht kann ich meine bisher includeten Dateien fast unverändert als solche Snippets speichern und einfügen :)

    Bitte Forenregeln beachten

Jetzt mitmachen!

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