TomC: http_referer ist immer leer

Hi profis,

hier ist ein newby am verzweifeln:
welche gründe kann es geben, wenn $ENV{'HTTP_REFERER'} leer ist?

Das SELFHTML-Script und andere scripts lieferten immer das gleiche ergebnis: nichts.

browser:
ns4.75, ns6.01, ns6.1 ns6.2.1 ns7.0 ie6.0 mozilla1.1 und opera 6.0

zugangsprovider:
diverse call-by-call und t-online

seiten gehostet bei:
strato: 1.3.26
kleiner krauter: apache 1.3.24

der einzige server, der mir http_referer liefert, ist mein localer webserver mit apache 2.0.39
Laut strato (jaja, ich weiß) soll es funktionieren. Tut es aber nicht. Ach ja: natürlich rufe ich das script nicht direkt sondern über eine htmlseite auf.

Gruß von TomC

  1. Moin Moin !

    Vergiß den HTTP-Referer-Header. Viele Proxies werfen den ohnehin raus, in diversen Browsern kann man ihn unterdrücken, und generell läßt sich da jeder Dreck eintragen.

    Such mal im Archiv für weitere Erklärungen.

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
    Mein "Lieblings-Forums-Bug": http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2
    1. hmmm. ok. verstehe.

      aber warum verwenden dann so viele programmierer den http_referrer in ihren perl-scripts, wenn das gar keinen sinn macht???

      danke und gruß von tom

      1. Hallo,

        bin auf Arbeit, daher nur kurzer Hinweis:
        versuche mal getenv( 'HTTP_REFERER' );
        Heisst die Variable, die Du suchst, nicht ausserdem $_ENV?

        http://www.php.net/manual/en/reserved.variables.php

        Gruss, Thoralf

        1. Moin Moin !

          Hallo,

          bin auf Arbeit, daher nur kurzer Hinweis:
          versuche mal getenv( 'HTTP_REFERER' );

          Genau, der legendäre Rechtschreibfehler in der HTTP/1.0-RFC. Man muß es tatsächlich falsch schreiben.

          Heisst die Variable, die Du suchst, nicht ausserdem $_ENV?

          Nur in PHP. In Perl heißt sie %ENV, auf den Referrer greift man mit $ENV{'HTTP_REFERER'} zu.

          Alexander

          --
          Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
          Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
          Mein "Lieblings-Forums-Bug": http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2
          1. bringt leider alles nix.

            ich vergaß auch erwähnen, dass es sich perl und nicht um php dreht.
            sorry.

            inzwischen vermute ich, dass es an irgend einer sicherheitseinstellung liegen muss. sei es der browser oder die firewall oder sonst etwas. skeptisch macht mich nur, das ich auch von zu hause aus ohne firewall und dergleichen keinen http_referer bekomme.

            syntax und rechtschreibung im script habe ich auch schon untersucht.

            es ist mit ein rätsel.

            TomC

            1. Moin Moin !

              Probier mal die beiden Scripte (als CGIs) aus:

              #!/usr/bin/perl
              use Data::Dumper;
              print "Content-type:text/plain\r\n\r\n";
              print Dumper(%ENV);

              #!/usr/bin/perl
              print "Content-type:text/plain\r\n\r\n";
              foreach my $key (sort keys %ENV) {
                print "$key => $ENV{$key}\n";
              }

              Alexander

              --
              Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
              Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
              Mein "Lieblings-Forums-Bug": http://cforum.teamone.de/phpbt/bug.php?op=show&bugid=103&pos=2
              1. Hallo Alexander

                danke für Deine Mühe.

                Das erste Script hat bei Strato einen 500er Fehler ausgelöst, bei der Krauter gab's die gleiche Liste wie mit den anderen Test-Scripts auch.

                Das zweite Script lief überall sauber durch und lieferte ebenfalls die bereits bekannte Liste der Umgebungsvariablen.

                Aber immer ohne HTTP_REFERER.

                Vielleicht liegt es an der Firewall, die hier im Büro steht. Allerdings sehe ich den HTTP_REFERER auch zu Hause nicht, und da gibt's keine Firewall.
                Außerdem habe ich per .htaccess eventuelle Fehler (401,403,404,500) abgefangen und an ein Script weitergeleitet. Diese Weiterleitung habe ich bereits deaktiviert, sitze im Moment aber noch hinter der Firewall.
                Vielleicht klappt es heute Abend ohne Firewall und ohne Fehlerscript......

                Dank erstmal an alle, die geholfen haben!

                TomC

                1. hallo,

                  Aber immer ohne HTTP_REFERER.

                  Kann es sein dass Du das skript direkt aufgerufen hast (ohne webseite mit link auf das skript)
                  Dann gibts nähmlich auch kein http_referer .
                  Grüsse vom Alain