Thomas: URL aus einem Script lesen?!

Hallo,

Folgendes Problem: Ich habe etliche IMG-Tags in verschiedene HTML-Dateien geschrieben, welche mit dem SRC-Attribut auf ein PHP-Script zeigen.
Wenn jemand die HTML-Dateien aufruft, sollen Informationen ueber den Surfer (Zeit des Aufrufes etc.) sowie der Bildername (direkt als Parameter an den Scriptnamen will ichs nicht hängen) in eine Textdatei geschrieben werden. Nun, ich finde weder eine Funktion noch eine passende Variable, um aus einem PHP-Script die aktuelle URL zu lesen - ist dies überhaupt möglich? Wenn ja, sagt mir bitte wie.

/Thomas

  1. Hi,

    Nun, ich finde weder eine Funktion noch eine passende Variable, um aus einem PHP-Script die aktuelle URL zu lesen - ist dies überhaupt möglich?

    nur bedingt. In der Umgebungsvariable HTTP_REFERER, die Du wie immer mittels getenv() erhälst, steht *im Idealfall* die URL der Seite, die die Grafik referenziert. Einige Clients verhalten sich gerade bei eingebetteten Objekten aber falsch; außerdem kann und darf jeder Proxy, jede Firewall und sogar einige Browser - Scripts sowieso - den Referer löschen oder verfälschen, was in der Praxis auch absolut normal ist.

    Cheatah

  2. Folgendes Problem: Ich habe etliche IMG-Tags in verschiedene HTML-Dateien geschrieben, welche mit dem SRC-Attribut auf ein PHP-Script zeigen.
    Wenn jemand die HTML-Dateien aufruft, sollen Informationen ueber den Surfer (Zeit des Aufrufes etc.) sowie der Bildername (direkt als Parameter an den Scriptnamen will ichs nicht hängen) in eine Textdatei geschrieben werden. Nun, ich finde weder eine Funktion noch eine passende Variable, um aus einem PHP-Script die aktuelle URL zu lesen - ist dies überhaupt möglich? Wenn ja, sagt mir bitte wie.

    So wie ich dich verstanden habe, willst du ein Bild verlinken, was in Wirklichkeit ein Script ist, das aber mögl. trotzdem ein Bild liefert (meinetwegen eine .jpg mit readfile() sendet).

    Dann willst du wissen, von welcher URL das Script (i.e. das Bild) aufgerufen wurde.

    Dann würde ich dir die Verwendung der Konstante HTTP-REFERER empfehlen:

    http://php3.de/manual/de/language.variables.predefined.php#language.variables.predefined.apache

    "HTTP_REFERER
    Die Adresse (URL) - sofern vorhanden - der Seite, von der aus auf die aktuelle Seite gesprungen wurde. Diese wird vom Browser gesetzt. Nicht alle unterstützen dies."

    Dürfte man im Array HTTP_SERVER_VARS finden. Wie schon das Manual sagt, senden manche Browser kein "Referer:" im HTTP-Header, z.B. wenn der User dies ausgestellt hat oder wenn die Grafik/das Grafikscript direkt angewählt wird. D.h. du kannst dich nicht darauf verlassen.

    Mathias