uncSteve: Browser-Adress-Zeile auslesen !?

hallo Forumler,

gibt es ne Möglichkeit in PHP die Browser-Adress-Zeile auszulesen? http_Referer geht irgentwie nicht !?

Hintergrund:

2 Domains
1 Homepage
jetzt soll - je nach Domain - in einem Frame eine bestimmte Seite geladen werden, etwa so:

----------------------------------
<html><head><title>test</title></head>

<frameset cols="*,800,*" frameborder="NO" border="0" framespacing="0" rows="*,600,*">
  <frame src="rand01.htm" frameborder="NO" noresize scrolling="NO">
  <frame src="rand02.htm" frameborder="NO" noresize scrolling="NO">
  <frame src="rand03.htm" frameborder="NO" noresize scrolling="NO">
  <frame src="rand08.htm" frameborder="NO" noresize scrolling="NO">

<?
if ($HTTP_REFERER == 'http://www.domain1.de')  {
 echo'<frame name="haupt" src="domain1_home.htm" noresize frameborder="NO">';
}
elseif ($HTTP_REFERER == 'http://www.domain2.de')  {
 echo'<frame name="haupt" src="domain2_home.htm" noresize frameborder="NO">';
}
?>
  <frame src="rand04.php" noresize scrolling="NO" frameborder="NO">
  <frame src="rand07.htm" noresize scrolling="NO" frameborder="NO">
  <frame src="rand06.htm" noresize scrolling="NO" frameborder="NO">
  <frame src="rand05.htm" noresize scrolling="NO" frameborder="NO">
</frameset>
<noframes>
<body bgcolor="#FFFFFF" text="#000000">
</body>
</noframes>
</html>
---------------------------------------

geht aber net...

hat da jemand ne idee ??
Danke mal,
Steve

  1. Du kannst die URL doch auch mit JS auslesen!

    Gruss,
    CS

    1. Hallo!

      Du kannst die URL doch auch mit JS auslesen!

      Seit wann kann man denn Variablen aus JavaScript in PHP nutzen?

      Viele Grüße

      Patrick Canterino

      1. Hallo Patrick!

        Du kannst die URL doch auch mit JS auslesen!
        Seit wann kann man denn Variablen aus JavaScript in PHP nutzen?

        Z.B. so:

        document.write('<img src="script.php?x="+screen.width+'&y='+screen.height+'">');

        Für die Aufgabe von Steve wäre das wegen der zusätzlichen zu ladenden Seite aber ungünstig. (Der Redirect soll hier ja am besten gleich erfolgen, damit das mit Java-Script läuft müsste aber erstmal ne Seite geschickt werden, die das Ausliest und zurückgibt.)
        Ausserdem könnte man die Umleitung dann auch gleich komplett in JS machen.

        Gruss,
         Carsten

  2. Hallo Steve!

    gibt es ne Möglichkeit in PHP die Browser-Adress-Zeile auszulesen?

    nicht für Geld und nicht für gute Worte...

    http_Referer geht irgentwie nicht !?

    Das hat er so an sich (..nagut .. manchmal geht er ja doch)

    Aber was du willst geht mit:
      $HTTP_HOST
    einfach mal <?php echo $HTTP_HOST ?> in eine Datei und ausprobieren.

    Gruss,
     Carsten

    1. hmmm... komisch... geht genausoviel/wenig wie referer...

      echoausgabe funktioniert einwandfrei, nur die IF-Routine geht net.
      kann es daran liegen das die Datei das Frameset ist?

      <title><? $HTTP_HOST ?> </title> geht!!
      aber beim Frame-datei auswählen ist $HTTP_HOST leer...

      noch ne Idee? irgendwie?

      Hallo Steve!

      gibt es ne Möglichkeit in PHP die Browser-Adress-Zeile auszulesen?

      nicht für Geld und nicht für gute Worte...

      http_Referer geht irgentwie nicht !?

      Das hat er so an sich (..nagut .. manchmal geht er ja doch)

      Aber was du willst geht mit:
        $HTTP_HOST
      einfach mal <?php echo $HTTP_HOST ?> in eine Datei und ausprobieren.

      Gruss,
      Carsten

      1. Hallo uncSteve!

        hmmm... komisch... geht genausoviel/wenig wie referer...

        sagen wir mal so .. aufgrund eines weiteren Fehlers, von dem ich hoffte das du ihn selber erkennst geht das mit $HTTP_HOST immer noch nicht. Vergiss den Referrer, der wird nie richtig arbeiten.

        echoausgabe funktioniert einwandfrei, nur die IF-Routine geht net.

        Tja, da ist wohl was mit der Abfrage falsch.

        kann es daran liegen das die Datei das Frameset ist?

        Nein. (Das Frameset hat (neben Mondphase etc)) Einfluss auf den Referrer, nicht aber auf $HTTP_HOST.

        <title><? $HTTP_HOST ?> </title> geht!!
        aber beim Frame-datei auswählen ist $HTTP_HOST leer...

        Nein, deine Ausgabe ist leer!

        Änder den PHP-Teil mal zu:

        <?
        if ($HTTP_HOST == 'http://www.domain1.de')  {
         echo'<frame name="haupt" src="domain1_home.htm" noresize frameborder="NO">';
        }
        else if ($HTTP_HOST == 'http://www.domain2.de')  {
         echo'<frame name="haupt" src="domain2_home.htm" noresize frameborder="NO">';
        }
        else
          echo "ich habe was falsch gemacht: $HTTP_HOST ist als Aufrufdomain nicht vorgesehen";
        ?>

        und guck dir den erzeugten Quelltext an... na, dämmerts?

        Gruss,
         Carsten

        1. Hallo Carsten!

          also entweder hast Du mich missverstanden, oder ich hab echt das totale Brett vorm Kopf (doch noch recht neu in PHP)...

          Ich denke mal Du spielst auf das fehlende 'else' an. hab ich im Originalcode aber drin. genau dort springt er auch rein, allerdings meinte ich mit 'Ausgabe ist leer' die Variable $HTTP_HOST.
          wenn ich jetzt deinen Code mal ausführe bekomme ich folgende Ausgabe:
          -----------------------------
          ich habe was falsch gemacht: ist als Aufrufdomain nicht vorgesehen.
          -----------------------------
          also ist doch $HTTP_HOST = "" oder?
          wenn ich dann oben testweise
          <html><head><title><? $HTTP_HOST ?></title></head>
          eingebe, hab ich die URL in der Titelleiste.

          ich kapier´s net...

          *hoffaufhilfe*
          steve.

          Hallo uncSteve!

          hmmm... komisch... geht genausoviel/wenig wie referer...

          sagen wir mal so .. aufgrund eines weiteren Fehlers, von dem ich hoffte das du ihn selber erkennst geht das mit $HTTP_HOST immer noch nicht. Vergiss den Referrer, der wird nie richtig arbeiten.

          echoausgabe funktioniert einwandfrei, nur die IF-Routine geht net.

          Tja, da ist wohl was mit der Abfrage falsch.

          kann es daran liegen das die Datei das Frameset ist?

          Nein. (Das Frameset hat (neben Mondphase etc)) Einfluss auf den Referrer, nicht aber auf $HTTP_HOST.

          <title><? $HTTP_HOST ?> </title> geht!!
          aber beim Frame-datei auswählen ist $HTTP_HOST leer...

          Nein, deine Ausgabe ist leer!

          Änder den PHP-Teil mal zu:

          <?
          if ($HTTP_HOST == 'http://www.domain1.de')  {
          echo'<frame name="haupt" src="domain1_home.htm" noresize frameborder="NO">';
          }
          else if ($HTTP_HOST == 'http://www.domain2.de')  {
          echo'<frame name="haupt" src="domain2_home.htm" noresize frameborder="NO">';
          }
          else
            echo "ich habe was falsch gemacht: $HTTP_HOST ist als Aufrufdomain nicht vorgesehen";
          ?>

          und guck dir den erzeugten Quelltext an... na, dämmerts?

          Gruss,
          Carsten

          1. Hallo uncSteve!

            Ich denke mal Du spielst auf das fehlende 'else' an.

            auch.

            also ist doch $HTTP_HOST = "" oder?

            ja

            wenn ich dann oben testweise
            <html><head><title><? $HTTP_HOST ?></title></head>
            eingebe, hab ich die URL in der Titelleiste.

            Dann hast du 90:10 in deinem Script irgendwo ein
             if($HTTP_HOST="") echo "host ist leer" stehen;
            Danach ist es dann leer...

            Ansonsten solltest du einfach das Script posten was nicht läuft, und zwar so weit verkleinert das es grade nicht mehr läuft.

            Gruss,
             Carsten

            P.S. http://forum.de.selfhtml.org/faq/#Q-09a

            1. Ansonsten solltest du einfach das Script posten was nicht läuft, und zwar so weit verkleinert das es grade nicht mehr läuft.

              Hier hab ich jetzt mal das Originalscript:
              --------------------
              [?php

              if ($HTTP_HOST == 'http://www.apfelbaum-crailsheim.de')  {
               echo'TEST1:http_host='.$HTTP_HOST;
               #header("Location: p_index.htm");
               }
              elseif ($HTTP_HOST == 'http://www.disko-p1.de')  {
               echo'TEST2:http_host='.$HTTP_HOST;
               #header("Location: p_index.htm");
               }
              else  {
               echo'TEST3:http_host='.$HTTP_HOST;
               }

              ?]
              --------------------
              Habe hier die HEADER testweise auskommentiert und durch ECHO´s ersetzt.
              wenn ich jetzt das Script lokal aufrufe (zb. http://localhost/script.php) sollte die Abfrage in [else] springen und
              ----
              TEST3:http_host=http://localhost/script.php
              ----
              ausgeben, oder? Ausgegeben wird aber:
              ----
              TEST1:http_host=
              ----

              P.S. http://forum.de.selfhtml.org/faq/#Q-09a

              KAPIERT!

              1. Hallo Steve!

                wenn ich jetzt das Script lokal aufrufe (zb. http://localhost/script.php) sollte die Abfrage in [else] springen und

                TEST3:http_host=http://localhost/script.php

                (Fast) genau das passiert, nachdem ich das Script aus deinem Posting kopiert, die [?php ?] durch <?php ?> ersetzt, und das in meinem Browser aufgerufen  habe.

                Aber mir ist Aufgefallen was das Problem ist:
                Dein System erzeugt gar kein $HTTP_HOST. Das muss es nämlich nicht. (Ungewöhnlich aber möglich.)
                Was du im <title> gesehen hast ist das, was der Browser immer dann anzeigt, wenn er keinen Title hat: nämlich die URL.

                Mach mal ein kurzes Script:

                <?
                 phpinfo();
                ?>

                und ruf das bei einmal bei dir lokal auf, dann lade es hoch zu deinem Provider und rufe es dort auf. Das zeigt dir (u.a.) an, welche (sog. Umgebungs)Variablen du jeweils zur Verfügung hast. Irgendwo ist da hoffentlich der Host bei.

                Gruss,
                 Carsten

  3. Huhu Steve

    if ($HTTP_REFERER == 'http://www.domain1.de')  {

    spendier dem referer noch ein 2. r

    Viele Grüße

    lulu

    1. Moin

      spendier dem referer noch ein 2. r

      Das kann sie gerne tun. Dann müsste sie nur noch den Quellcode von PHP ändern, damit das auch geht.
      http://www.php.net/manual/en/language.variables.predefined.php#language.variables.predefined.apache

      --
      Henryk Plötz
      Grüße aus Berlin

    2. Huhu Steve

      ist natürlich Unsinn, hatte in einem Anflug von Legasthenie (oder wie immer man das schreibt) angenommen dem referer fehle ein R.
      Jetzt mach ich mal 'ne Pause

      Grüße lulu

      1. Huhu Steve

        Moin!

        ist natürlich Unsinn, hatte in einem Anflug von Legasthenie (oder wie immer man das schreibt) angenommen dem referer fehle ein R.
        Jetzt mach ich mal 'ne Pause

        Du hast im Prinzip recht! Referrer wird mit Doppel-R geschrieben. Allerdings hat irgendein Schlaumeier beim Abtippen der Standard-Definition wohl Legasthenie gehabt und "Referer" geschrieben - und alle Browserhersteller haben das 1:1 übernommen, was blieb ihnen auch übrig, es ist schließlich ein Standard.

        Seitdem hat die Welt das Referrer/Referer-Problem. :)

        - Sven Rautenberg

        PS: Die Geschichte muß natürlich so nicht stimmen, aber der Schreibfehler - der ist echt.

        1. Huhu Sven

          da hab ich ja nochmal Glück gehabt, danke für die EGO-Aufbauhilfe.
          *entröt* (soll jetzt das Gegenstück zu *erröt* sein, weil *erbleich* wohl an dieser Stelle weniger zutreffend ist)
          Ist mein alter FÜNFINDEUTSCHABERESLAGNURAMLEHRER-Komplex
          wobei referrer wohl eher kein deutsches Wort ist.

          Viele Grüße auch an alle Legosteiniker
          lulu

        2. Du hast im Prinzip recht! Referrer wird mit Doppel-R geschrieben.
          ...
          Seitdem hat die Welt das Referrer/Referer-Problem. :)

          http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.36

  4. Hallo,

    gibt es ne Möglichkeit in PHP die Browser-Adress-Zeile auszulesen? http_Referer geht irgentwie nicht !?

    Hast Du getenv("HTTP_REFERER") probiert?

    MfG, Thomas