1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Includete Inhalte werden nicht mehr angezeigt?

Dieses Thema im Forum "Allgemeines" wurde erstellt von Badango, 16. August 2019.

Schlagworte:
  1. Badango

    Badango Active Member

    Registriert seit:
    19. März 2018
    Beiträge:
    27
    Zustimmungen:
    4
    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?
     
  2. r23

    r23 Well-Known Member

    Registriert seit:
    9. Dezember 2006
    Beiträge:
    7.348
    Zustimmungen:
    588
    Die paar Spielereien können Sicherheitslücken darstellen - ergo: Vorsicht!

    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

    Mit PHP Debugging
    https://www.php.net/manual/de/debugger.php
    möchtest du dich auch nicht belasten?
     
  3. Badango

    Badango Active Member

    Registriert seit:
    19. März 2018
    Beiträge:
    27
    Zustimmungen:
    4
    Keine Sorge, was das angeht ist da alles in Ordnung :)

    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:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    wird das nicht ausgegeben.

    Passiert bereits so, also per include_once().

    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).
     
  4. danielgoehr

    danielgoehr Well-Known Member

    Registriert seit:
    13. Juli 2016
    Beiträge:
    2.674
    Zustimmungen:
    128
    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?
     
    #4 danielgoehr, 17. August 2019
    Zuletzt bearbeitet: 17. August 2019
  5. Badango

    Badango Active Member

    Registriert seit:
    19. März 2018
    Beiträge:
    27
    Zustimmungen:
    4
    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 :)
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden