REQUEST_URI enthaelt Protokoll und Pfad?
REQUEST_URI enthaelt Protokoll und Pfad?
am 12.09.2006 11:34:23 von Marc Haber
Hi,
unter manchen Umständen (z.B. wenn ein Proxy im Spiel ist, um den
abgeschotteten Testwebserver zu erreichen) enthält REQUEST_URI
entgegen der Spezifikation den kompletten URI und nicht nur den Pfad
hinter dem Hostnamen:
REQUEST_URI http://my.site.example:1314/phpinfo.php
Die Community einer bekannten Galeriesoftware sagt nun, das sei
kaputt.
Wie ist es denn nun? Ist das ein bekannter Bug in meinem (alten, da
Debian stable) php4 4.3.10? Kann ich mich da irgendwie drum herum
mogeln?
Grüße
Marc
--=20
-------------------------------------- !! No courtesy copies, please !! =
-----
Marc Haber | " Questions are the | Mailadresse im =
Header
Mannheim, Germany | Beginning of Wisdom " | =
http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 =
72739834
Re: REQUEST_URI enthaelt Protokoll und Pfad?
am 12.09.2006 12:23:05 von Ulf Kadner
Marc Haber wrote:
> unter manchen Umständen (z.B. wenn ein Proxy im Spiel ist, um den
> abgeschotteten Testwebserver zu erreichen) enthält REQUEST_URI
> entgegen der Spezifikation den kompletten URI und nicht nur den Pfad
> hinter dem Hostnamen:
Wo wird das denn Spezifiziert? URL?
MfG, Ulf
Re: REQUEST_URI enthaelt Protokoll und Pfad?
am 12.09.2006 12:25:46 von Marc Haber
Ulf Kadner wrote:
>Marc Haber wrote:
>> unter manchen Umständen (z.B. wenn ein Proxy im Spiel ist, um den
>> abgeschotteten Testwebserver zu erreichen) enthält REQUEST_URI
>> entgegen der Spezifikation den kompletten URI und nicht nur den Pfad
>> hinter dem Hostnamen:
>
>Wo wird das denn Spezifiziert? URL?
http://www.php.net/manual/en/reserved.variables.php
|'REQUEST_URI'
| The URI which was given in order to access this page; for instance, =
'/index.html'.
Grüße
Marc
--=20
-------------------------------------- !! No courtesy copies, please !! =
-----
Marc Haber | " Questions are the | Mailadresse im =
Header
Mannheim, Germany | Beginning of Wisdom " | =
http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 =
72739834
Re: REQUEST_URI enthaelt Protokoll und Pfad?
am 12.09.2006 12:32:30 von Ulf Kadner
Marc Haber wrote:
>>Wo wird das denn Spezifiziert? URL?
>
> http://www.php.net/manual/en/reserved.variables.php
>
> |'REQUEST_URI'
> | The URI which was given in order to access this page; for instance, '/index.html'.
:-) Und die Paar Worte sagen das Deiner Meinung nach aus? *lol*
PHP hat mit dem Wert dessen erst mal nix zu tun. Das kommt vom
Webserver. Es gibt auch Webserver (z.B.: IIS) die dieses Feld garnicht
kennen.
Kläre doch erst mal bei denen die sagen es wäre inkorrekt auf welche
Spezifikation sie sich beziehen. Mir ist dazu keine bekannt.
MfG, Ulf
Re: REQUEST_URI enthaelt Protokoll und Pfad?
am 12.09.2006 13:26:30 von Carsten Wiedmann
Marc Haber schrieb:
> unter manchen Umständen (z.B. wenn ein Proxy im Spiel ist, um den
> abgeschotteten Testwebserver zu erreichen) enthält REQUEST_URI
> entgegen der Spezifikation den kompletten URI und nicht nur den Pfad
> hinter dem Hostnamen:
>
> REQUEST_URI http://my.site.example:1314/phpinfo.php
>
> Die Community einer bekannten Galeriesoftware sagt nun, das sei
> kaputt.
Kaputt nicht, aber eher ungewöhnlich.
Bei HTTP/1.0 ist die absoluteURI in der Request-URI wirklich nur bei
Proxy-Requests zugelassen, normal darf es nur der abs_path sein. Bei
HTTP/1.1 darf die absoluteURI immer in der Request-URI benutzt werden. Bzw.
ein HTTP/1.1-Server muss eine absoluteURI im GET immer zulassen, auch wenn
die meisten Clients normal nur den abs_path verwenden.
Der Apache setzt dann diese Variable einfach so wie er sie auch vom Client
bekommt, und so hast du sie dann auch in PHP zur Verfügung.
Wenn du damit Probleme hast, weil manchmal die absoluteURI benutzt wird von
UAs und dein Script auf die REQUEST_URI mir einem abs_path angewiesen ist,
kannst du dir am Anfang vom Script ja die REQUEST_URI selbst
zusammenbasteln:
| $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
| if (!empty($_SERVER['QUERY_STRING'])) {
| $_SERVER['REQUEST_URI'] .= "?{$_SERVER['QUERY_STRING']}";
| }
Gruß
Carsten
Re: REQUEST_URI enthaelt Protokoll und Pfad?
am 13.09.2006 12:13:15 von Marc Haber
Ulf Kadner wrote:
>Kläre doch erst mal bei denen die sagen es wäre inkorrekt auf welche=
=20
>Spezifikation sie sich beziehen. Mir ist dazu keine bekannt.
Meine Recherchen sind auch im Sande verlaufen. Gallery wurde
inzwischen gefixt.
Grüße
Marc
--=20
-------------------------------------- !! No courtesy copies, please !! =
-----
Marc Haber | " Questions are the | Mailadresse im =
Header
Mannheim, Germany | Beginning of Wisdom " | =
http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 =
72739834
Re: REQUEST_URI enthaelt Protokoll und Pfad?
am 13.09.2006 12:19:25 von Marc Haber
"Carsten Wiedmann" wrote:
>Bei HTTP/1.0 ist die absoluteURI in der Request-URI wirklich nur bei=20
>Proxy-Requests zugelassen, normal darf es nur der abs_path sein. Bei=20
>HTTP/1.1 darf die absoluteURI immer in der Request-URI benutzt werden. =
Bzw.=20
>ein HTTP/1.1-Server muss eine absoluteURI im GET immer zulassen, auch =
wenn=20
>die meisten Clients normal nur den abs_path verwenden.
>
>Der Apache setzt dann diese Variable einfach so wie er sie auch vom =
Client=20
>bekommt, und so hast du sie dann auch in PHP zur Verfügung.
Sprich, das ist das, was nach dem GET und vor dem HTTP/1.x in der
ersten Zeile des Requests steht, und es wird einfach 1:1
durchgereicht?
>Wenn du damit Probleme hast, weil manchmal die absoluteURI benutzt wird =
von=20
>UAs und dein Script auf die REQUEST_URI mir einem abs_path angewiesen =
ist,=20
>kannst du dir am Anfang vom Script ja die REQUEST_URI selbst=20
>zusammenbasteln:
>| $_SERVER['REQUEST_URI'] =3D $_SERVER['SCRIPT_NAME'];
>| if (!empty($_SERVER['QUERY_STRING'])) {
>| $_SERVER['REQUEST_URI'] .=3D "?{$_SERVER['QUERY_STRING']}";
>| }
So ähnlich haben die Gallery-Autoren das jetzt wohl gemacht. Ich wäre
eh sehr zurückhaltend gewesen, in anderer Leute Software rumzupatchen.
Grüße
Marc
--=20
-------------------------------------- !! No courtesy copies, please !! =
-----
Marc Haber | " Questions are the | Mailadresse im =
Header
Mannheim, Germany | Beginning of Wisdom " | =
http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 =
72739834