Andre: Probleme mit HTTP_REFERER?

Hallo,

ich habe ein Problem mit den Umgebungsvariablen in PHP. Ich möchte von Websiten eine Druckversion erstellen, also nur den Inhalt ohne Menues. Dazu habe ich eine print.php, in dieser wird ein Start- und Stop-String festgelegt um den zu druckenden Bereich einzugrenzen.

Die zu druckende URL soll mittels HTTP_REFERER ermittelt werden, dies funktioniert aber anscheinend nicht, das restliche Script scheint zu laufen wenn ich bei fopen eine fixe URL eintrage.

Gibt es eine Alternative zu HTTP_REFERER? Den mein Provider hat PHP4.0.6 laufen, geht da HTTP_REFERER überhaupt? Bei mir auf der Testumgebung läuft PHP4.3.0, geht da aber auch nicht...

Denkbar wäre doch auch parse_url zu nehmen? Etwa so:
$teilurl = parse_url($pfad);
$url = $teilurl[host].$teilurl[path];

Wobei jetzt mein Problem ist wie ich $pfad übertrage. Irgendwie beim Aufruf der print.php mittels print.php?rawurlencode($pfad) oder so???

Hier mal das Script mit HTTP_REFERER zur Ansicht: http://www.andredittmar.de/print.txt

Vielleicht hat ja jemand eine Idee?
Gruss Andre

  1. Die zu druckende URL soll mittels HTTP_REFERER ermittelt werden, dies funktioniert aber anscheinend nicht, das restliche Script scheint zu laufen wenn ich bei fopen eine fixe URL eintrage.

    Gibt es eine Alternative zu HTTP_REFERER? Den mein Provider hat PHP4.0.6 laufen, geht da HTTP_REFERER überhaupt? Bei mir auf der Testumgebung läuft PHP4.3.0, geht da aber auch nicht...

    Der Referer:-Kopf wird vom Browser übermittelt und hat mit PHP nichts weiter zu tun (außer daß PHP die Info weiter gibt). Ob und wo er tatsächlich übermittelt wird, kannst Du mit phpinfo(INFO_VARIABLES) feststellen.

    Wobei jetzt mein Problem ist wie ich $pfad übertrage. Irgendwie beim Aufruf der print.php mittels print.php?rawurlencode($pfad) oder so???

    Das kannst Du machen und ist möglicherweise auch sinnvoller als über Referer: zu gehen, da selbige Info wie gesagt von manchen Leuten mit Verfolgungswahn zurück gehalten wird :)
    Der Teil hinter dem Fragezeichen erscheint in $_SERVER["QUERY_STRING"] (alt: $HTTP_SERVER_VARS["QUERY_STRING"]).

    $refpage = (phpversion() > "4.1.0") ? $_SERVER[HTTP_REFERER] : $HTTP_SERVER_VARS[HTTP_REFERER];

    Auf Felder greift man eigentlich mit Anführungszeichen zu: $_SERVER["HTTP_REFERER"].

    Gruß,
      soenk.e

    1. Das kannst Du machen und ist möglicherweise auch sinnvoller als über Referer: zu gehen, da selbige Info wie gesagt von manchen Leuten mit Verfolgungswahn zurück gehalten wird :)
      Der Teil hinter dem Fragezeichen erscheint in $_SERVER["QUERY_STRING"] (alt: $HTTP_SERVER_VARS["QUERY_STRING"]).

      Hi soenk.e,

      Vielen Dank für Deinen Denkanstoss!! Nach einem ordentlichen Mittagessen und mit frischem Elan hat es jetzt mit irgendwie hingehauen! Das ich zuhause eine andere PHP Version (4.3.0) als mein Provider (4.0.6) habe, hatte die Sache auch nicht wirklich leichter gemacht :-)... naja egal!

      Gruss Andre