Nad Flanders: Probleme beim Includen über absoluten Pfad

Aloa,

aufgrund der Tatsache, dass ich Seiten auf dem Server verschiebe, include ich alle Includes mit einer absoluten Url.
Zum Ändern der Styles nutze ich einen Styleswitcher

  
<?php  
  
$stylefile = "header";  
$stylefile .= $style;  
$stylefile .= ".php";  
  
include $stylefile;  
  
  
 ?>  

Diese Script würde ich nun auch ganz gerne über eine absolute Pfadangabe einbinden, bekomme hier jedoch folgenden Fehler:

Warning: include(http://www.xyz.de/Styleswitcher/header.php) [function.include]: failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in /kunde....

sowie:

Failed opening 'http://www.xyz.de/Styleswitcher/header.php' for inclusion (include_path='.:/usr/local/lib/php') in....

Kann mir da vielleicht Jemand weiterhelfen?

Lg,
Nad

  1. Hi,

    Warning: include(http://www.xyz.de/Styleswitcher/header.php) [function.include]: failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in /kunde....

    Dann schau im Log des Webservers der Domain, von der du die Ressource anforderst nach, warum dieser einen 500 Internal Server Error meldet.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi,

      das Problem ist, dass Log files schreiben bis eben nicht aktiviert war. Ich habe es jetzt aktiviert, den fehler nochmals provoziert, in der Hoffnung, dass sich daraufhin eine Logdatei anlegt....ERROR.
      Ich kann sie nicht finden, bzw. existiert sie nicht. Gibt es vielleicht noch eine andere Möglichkeit?

      LGN

      1. Hi,

        das Problem ist, dass Log files schreiben bis eben nicht aktiviert war. Ich habe es jetzt aktiviert, den fehler nochmals provoziert, in der Hoffnung, dass sich daraufhin eine Logdatei anlegt....ERROR.
        Ich kann sie nicht finden, bzw. existiert sie nicht. Gibt es vielleicht noch eine andere Möglichkeit?

        Nein.
        Wenn der Server dir einen 500 Internal Server Error meldet, kann auch nur der Server dir sagen, warum dieser auftrat.

        Btw: Du schaust aber schon auf dem *richtigen* Server, ja?

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. Btw: Du schaust aber schon auf dem *richtigen* Server, ja?

          yep.

          1. Problem gelöst:

            <?php
            $stylefile = "header";
            $stylefile .= $style;
            $stylefile .= ".php";

            include $stylefile;
            ?>

            include $stylefile; war der Fehler und so ist es richtig:
            include_once($stylefile);

            LGN

            1. echo $begrüßung;

              include $stylefile; war der Fehler und so ist es richtig:
              include_once($stylefile);

              Das glaub ich dir nicht. include und include_once sind beides Sprachkonstrukte und keine Funktionen. Klammern um das Argument ergeben keinen Unterschied in der Ausführung. Und ein include_once löst nur dann ein Problem, das man mit include hat, wenn Funktions- oder Klassennamen mehrfach zu inkludieren versucht werden.

              echo "$verabschiedung $name";

              1. Hi,

                hier die Mail vom Provider:

                Wir haben uns Ihre Dateien und die Fehlermeldung noch einmal angesehen
                und festgestellt, das beim include über http:// ein Fehler 500 auftritt.
                Wenn Sie die header.php alleine ohne irgendwelche Parameter aufrufen, so
                entsteht der Fehler 500.
                Wir haben zudem festgestellt, das die Variable $stylefile immer nur
                header.php beinhaltet, welche aber in einer sehr langen oder
                Endlosschleife entsteht.

                Wenn Sie in der Styleswitcher/header.php einmal statt nur
                include $stylefile;

                einen "include_once($stylefile);" verwenden, so wird die Datei nur
                einmal includiert und nicht immer wieder, wenn diese bereits geladen wurde.
                Damit können Sie den Fehler 500 beheben und wieder über
                http://*****/Styleswitcher/header.php die Datei
                includieren.

                vielleicht erklärt die mehr.

                Grüße

                1. echo $begrüßung;

                  hier die Mail vom Provider:
                  [...]
                  vielleicht erklärt die mehr.

                  Nicht wirklich. Wodurch entsteht denn der 500er? Es klingt nach einem Ressourcenproblem. Entweder wird aufgrund der Programmierung zu viel Speicher oder zu viel Zeit verbraucht und daraufhin das Script abgebrochen, was dann der Webserver mit dem 500er an den Client meldet. Das include_once beseitigt nach meiner Vermutung nicht die Ursache sondern lindert nur ihre Auswirkungen.

                  echo "$verabschiedung $name";

  2. echo $begrüßung;

    aufgrund der Tatsache, dass ich Seiten auf dem Server verschiebe, include ich alle Includes mit einer absoluten Url.

    Normalerweise inkludiert man über das Filesystem und nicht über HTTP, wenn man sich keine grobe Sicherheitslücke einhandeln will. Außerdem bekommt man im Allgemeinen von einem anderen Server ein Ergebnis und keinen PHP-Quellcode, wenn dort PHP konfiguriert ist. Is es wirklich dein Ziel etwas per HTTP zu inkludieren?

    echo "$verabschiedung $name";