Kumpel Kalle: Externe Navigations.html in meine html-Seiten per php einbauen

Hallo Fachleute,
ich hatte die bisherige Lösung aus dem Netz, aus irgndeinem Forum, aber seit kurzen funktioniert sie nicht mehr, und ich bekomme einen 500-Internal-Server Error.

Der Fehler liegt in der .htaccess, soweit bin ich schon.

Damit ich die Navigation der Webseite nicht auf jeder Unterseite immer wieder ändern muss, habe ich die Navigation per html-Seite ausgelagert und muss dann halt nur einmal diese html-Datei aktualisieren.

Dabei bin ich nach damaliger Anleitung wie folgt vorgegangen:

Einbinden der html-datei in die html-Seite mit folgendem Code

Code:

<?php readfile("php/navigationlinks.html"); ?>

Aber damit das funktioniert, musste ich in der .htaccess folgenden Code zusätzlich eingeben:

Code:

AddType application/x-httpd-php5 .html

wenn ich diesen obigen Code aus der .htaccess lösche, kann ich zwar die Seite wieder aufrufen, aber eben ohne die Navigation, da so ja nicht auf die html-Datei mit der Navigation zugegriffen wird.

Bis vor ein paar Tagen hat das allerdings auch problemlos funktioniert, aber auf einmal nicht mehr.
Kennt jemand eine Lösung für dieses Problem?
Danke

  1. Hi,

    <?php readfile("php/navigationlinks.html"); ?>

    wo ist der Unterschied zu file_get_contents()? - benutze ich des öfteren (ohne htaccess eintrag).

    Viele Grüße aus LA

    --
    ralphi
    1. Hallo Ralphi,

      nein, auch damit klappt es nicht.
      Ich habe es in dieser Form geschrieben:
      <?php file_get_contents("php/navigationlinks.html"); ?>

      Aber die Navigation erscheint nicht.

      Was ich ja überhaupt nicht verstehe:
      Bis vor ein paar Tagen hat es mit dem Readfile-Code einwandfrei geklappt und auf einmal nicht mehr.
      Kannst du dir einen Grund vorstellen?

      Danke
      Kalle

      1. Kannst du dir einen Grund vorstellen?

        Du hast das Problem eben noch selbst in der .htaccess verortet. Also beantworte folgende Fragen vollständig:

        • Was hat sich an der Installation geändert,
        • was für eine Installation (
            -- Betriebssystem,
            -- Webserver,
            -- PHP als Modul oder PHP als CGI
            ) hast Du überhaupt und
        • wer ist dafür verantwortlich?
        • Was sagt das Error-Log des Webservers nach dem Aufruf
             -- mit dem Eintrag in der .htaccess
             -- ohne den Eintrag in der .htaccess?
        • Was sagt das Error-Log des Webservers und/oder das Error-Log des Betriebssystems des Servers bei einem Neustart des Webservers?

        Jörg Reinholz

    2. @@ralphi:

      nuqneH

      <?php readfile("php/navigationlinks.html"); ?>

      wo ist der Unterschied zu file_get_contents()?

      Dass file_get_contents() einen String (bzw. FALSE) liefert, während readfile() gleich ausgibt, gewissermaßen als 'echo file_get_contents();' fungiert.

      Qapla'

      --
      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
    3. Tach!

      <?php readfile("php/navigationlinks.html"); ?>
      wo ist der Unterschied zu file_get_contents()?

      readfile() liest die Datei in kleinen Häppchen und gibt diese sofort in Richtung Webserver weiter. file_get_contents() liest die Datei vollständig in den Speicher. Wenn man sie lediglich ausgibt, hat sie umsonst speicher belegt. Das mag bei einer Navigation sicher nicht ins Gewicht fallen, denn die dürfte recht klein sein. Interessanter wird das bei Foto- und anderen größeren Dateien, die lediglich durchgereicht und nicht bearbeitet werden sollen.

      • benutze ich des öfteren (ohne htaccess eintrag).

      Das Problem hier ist, dass der PHP-Code generell nicht ausgeführt wird. Das liegt nicht daran, dass die navigationlinks.html nicht auf .php endet (sowas wäre den Dateifunktionen PHPs inklusive include/require egal), sondern dass anzunehmenderweise die einbindende Daten auf .html endet und somit nicht per se durch PHP läuft.

      dedlfix.

  2. @@Kumpel Kalle:

    nuqneH

    AddType application/x-httpd-php5 .html

    Bis vor ein paar Tagen hat das allerdings auch problemlos funktioniert, aber auf einmal nicht mehr.
    Kennt jemand eine Lösung für dieses Problem?

    .php als Endung für Dateien verwenden, die durch PHP laufen sollen.

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
  3. Tach!

    AddType application/x-httpd-php5 .html
    Bis vor ein paar Tagen hat das allerdings auch problemlos funktioniert, aber auf einmal nicht mehr.

    Ich war's nicht, aber vielleicht dein Systemverwalter.

    Kennt jemand eine Lösung für dieses Problem?

    Ohne die Ursache zu kennen, wird dir keiner die Lösung sagen können. Lediglich Rätselraten und gängige Alternativen nennen wäre möglich. Die Ursache eines 500er Fehlers steht im Error-Log. Das kann alles mögliche sein. Die 500er Meldung, die nach außen hin angezeigt wird, ist ganz bewusst nichtssagend allgemein gehalten. Ohne den Blick ins Error-Log kommst du da nicht gezielt weiter. Dummerweise stellen das einige Provider nicht zur Verfügung. Was ich mir vorstellen knnte, ist, dass der Typ nicht mehr application/x-httpd-php5 heißt. Aber ob das der Fall ist und wie er neu heißt, kann dir nur dein Systemadministrator sagen.

    dedlfix.