Michi: include mit Skript-Param. funktioniert nur mit kompletter URL

Hi,

funktioniert include() generell nur mit der kompletten URL ("http://..."), wenn das zu ladende Skript Parameter übergeben bekommt?

Mein Skript macht nichts, wenn ich eine andere .php-Seite ausm aktuellen Verzeichnis mit Paremetern angebe; geb ich die komplette URL an, wird die Seite geladen.

Geht nicht (wird nicht eingebunden, obwohl die Datei im selben Verzeichnis liegt):
include ("alle_daten.php?id=" . $id);

Geht schon:
include ("http://217.160.138.166/Horoskopedatenbank/alle_daten.php?id=" . $id);

Woran liegt das?

Gruß
Michi

  1. Hallo Freunde des gehobenen Forumsgenusses,

    Mein Skript macht nichts, wenn ich eine andere .php-Seite ausm aktuellen Verzeichnis mit Paremetern angebe; geb ich die komplette URL an, wird die Seite geladen.

    Geht nicht (wird nicht eingebunden, obwohl die Datei im selben Verzeichnis liegt):
    include ("alle_daten.php?id=" . $id);

    Existiert eine Datei namens "alle_daten.php?id=$id"? Nein? Warum versuchst du dann, sie einzibinden?

    Geht schon:
    include ("http://217.160.138.166/Horoskopedatenbank/alle_daten.php?id=" . $id);

    Ich vermute stark, dass du jetzt zur Not readfile verwenden
    und dann dein Konzept überarbeiten möchtest.
    Das jetzige scheint da ein paar Mängel zu haben.

    Gruß
    Alexander Brock

    --
    Ceterum censeo Carthaginem esse delendam
  2. Hi,

    funktioniert include() generell nur mit der kompletten URL ("http://..."), wenn das zu ladende Skript Parameter übergeben bekommt?

    Das liegt an der Unsitte von PHP, Dateien und HTTP-Ressourcen durcheinanderzuwürfeln.

    Ohne http:// wird auf das Dateisystem zugegriffen, mit http:// wird ggf. ein HTTP-Request losgeschickt.

    Dateisystemzugriffe kennen keine URL-Parameter, das, was Du als Querystring interpretierst, wird als Bestandteil des Dateinamens betrachtet.

    Mein Skript macht nichts, wenn ich eine andere .php-Seite ausm aktuellen Verzeichnis mit Paremetern angebe;

    Setz das Error-Reporting auf all - dann bekommst Du auch die Hinweise, warum der Include nicht geklappt hat.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hallo MudGuard.

      Setz das Error-Reporting auf all - dann bekommst Du auch die Hinweise, warum der Include nicht geklappt hat.

      Um genau zu sein auf die Konstante E_ALL.

      Einen schönen Sonntag noch.

      Gruß, Ashura

      1. Hi zusammen,

        danke für Eure Tips. Bin heut allerdings draufgekommen, dass es mit header("location: ... ") eh besser klappt. ;)

        Wie hoch ist eigentlich der Anteil der PHP-Programmierer, die mit einem selbsteingerichteten und -verwalteten Webserver arbeiten? Dachte eigentlich, die meisten hosten einfach so ein Drum und los gehts, den Rest machen "die anderen". :) Scheinbar nehmens aber viele gern selber in die Hand.

        Gruß Michi

        1. Hallo Freunde des gehobenen Forumsgenusses,

          Wie hoch ist eigentlich der Anteil der PHP-Programmierer, die mit einem selbsteingerichteten und -verwalteten Webserver arbeiten? Dachte eigentlich, die meisten hosten einfach so ein Drum und los gehts, den Rest machen "die anderen". :) Scheinbar nehmens aber viele gern selber in die Hand.

          Also ich habe vier Server, auf die ich root-Zugriff habe und auf denen ich Apache2 & PHP kompiliert habe. Die sind aber alle nicht ohne Zugangskennung über das Internet erreichbar, dafür habe ich meinen Provider.

          Gruß
          Alexander Brock

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }