Andreas B.: http_referer geht bei Url Weiterleitung verloren

Hallo.

Wer kann mir weiterhelfen?
Ich bin Betreiber einer Linkhomepage.

Nach dem Anklicken eines Links öffne ich ein neues Fenster, starte ein php script -
zb. www.weinlinks.at/open_url.php?id=448
Mit dieser id suche ich dann die zugehörige Adresse in meiner Datenbank.
Danach muß ich die Adresse irgendwie AUTOMATISCH öffnen.
Ich habe schon mehrere Arten probiert und habe immer wieder das gleiche problem : der http_refer geht vorloren, das bedeutet die verlinkten Seiten sehen nicht, dass der Besucher von meiner Seite kommt.

Folgende Methoden habe ich schon ausprobiert :

mit Javascript :  ($link enspricht der http adresse aus der datenbank)
<?php
echo "<p align='center'><b><font size='5'><a href='$link"'>Die Seite wird geladen . . .</a></font></b></p>";
}
?>

mit meta http-equiv :
<?php
echo "<meta http-equiv='refresh' content='0; URL=". $link ."'>";
?>

Danke für die Hilfe.

Grüße
Andreas

  1. Hallo Andreas,

    Nach dem Anklicken eines Links öffne ich ein neues Fenster, starte ein php script -
    zb. www.weinlinks.at/open_url.php?id=448
    Mit dieser id suche ich dann die zugehörige Adresse in meiner Datenbank.
    Danach muß ich die Adresse irgendwie AUTOMATISCH öffnen.
    Ich habe schon mehrere Arten probiert und habe immer wieder das gleiche problem : der http_refer geht vorloren, das bedeutet die verlinkten Seiten sehen nicht, dass der Besucher von meiner Seite kommt.

    mit Javascript :  ($link enspricht der http adresse aus der datenbank)
    <?php
    echo "<p align='center'><b><font size='5'><a href='$link"'>Die Seite wird geladen . . .</a></font></b></p>";
    }
    ?>

    Ähm, wo ist hier bitte JavaScript? Und HTML-Attribute sollten immer in " eingeschlossen werden! Und ausserdem würde diese Lösung ja nicht automatisch weiterleiten, sondern einen Link ausgeben (wenn es da nicht den Syntaxfehler bei $link" gäbe ;-)

    mit meta http-equiv :
    <?php
    echo "<meta http-equiv='refresh' content='0; URL=". $link ."'>";
    ?>

    Und da geht der Referer verloren? Das ist schon komisch. Ich benutze für sowas immer eine HTTP-Weiterleitung, da hats noch nie Probleme gegeben:

    <?php
        header('Location: '.$link);
    ?>

    Wichtig ist, dass der Aufruf der header()-Funktion erfolgt, BEVOR irgendetwas anderes ausgegeben wird (also mit echo oder auch HTML-Code ausserhalb von PHP-Bereichen).

    viele Grüße
      Achim Schrepfer

    --
    »Wenn die meisten sich schon armseliger Kleider und Möbel schämen, wieviel mehr sollten wir uns da erst armseliger Ideen und Weltanschauungen schämen.« - Albert Einstein
    Selfcode: sh:) fo:| ch:| rl:° br:> n4:{ ie:% mo:} va:| de:< zu:| fl:( ss:) ls:& js:|
    1. Hallo Achim,

      Leider habe ich den falschen Text eingefügt.
      das Java Script lautet (diesmal ohne Syntaxfehler)

      <?php
      echo "<script language='JavaScript'>";
      if ($link != ""){
       echo "window.location.replace ('$link')";
      }
      echo "</script>";
      ?>

      Danke für den Tip mit der http-weiterleitung.
      Ich werde es ausprobieren.

      Grüße Andreas

    2. Hallo Achim

      Ähm, wo ist hier bitte JavaScript? Und HTML-Attribute sollten immer in " eingeschlossen werden!

      Entweder " oder ':

      "By default, SGML requires that all attribute values be delimited using either double quotation marks (ASCII decimal 34) or single quotation marks (ASCII decimal 39)." (http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.2.2)

      Trotzdem ist der Quelltext natürlich nicht besonders sinnvoll und AFAIK auch falsch, da er einige " zu viel eingebaut hat.

      Schöne Grüße

      Johannes

      --
      This posting comes with ABSOLUTELY NO WARRANTY, to the extend permitted by applicable law.
      ss:| zu:) ls:[ fo:) de:] va:) ch:? sh:( n4:& rl:( br:< js:| ie:{ fl:( mo:}
      Selfcode? Was ist denn das? http://emmanuel.dammerer.at/selfcode.html
      1. Hi,

        Entweder " oder ':
        "By default, SGML requires that all attribute values be delimited using either double quotation marks (ASCII decimal 34) or single quotation marks (ASCII decimal 39)." (http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.2.2)

        ok, Du hast gewonnen ;-) Ich finde die ' halt unschön.

        viele Grüße
          Achim Schrepfer

        --
        http://reskit.speedesign.de/ - PHP-Bibliothek zum automatischen Erzeugen von HTML-Tabellen, -Formularen und -Baummenüs anhand von MySQL-Tabellen
        Selfcode: sh:) fo:| ch:| rl:° br:> n4:{ ie:% mo:} va:| de:< zu:| fl:( ss:) ls:& js:|
  2. Huhu Andreas

    Folgende Methoden habe ich schon ausprobiert :
    mit Javascript :
    mit meta http-equiv :

    du solltest keine clientseitige Methode verwenden.

    Besser Du schickst einen http-header, z.B. so:

    header ('Location: http://wo.wills.de/denn/hin.html');

    den "Referer" kannst Du entsprechend schicken,
    oder Du "hängst" noch einen GET-Parameter an, dann
    kann der Kunde in seinen LogFiles sehen, dass der Besucher von Dir kommt.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Hallo lulu

      Danke. Ich werde es ausprobieren.

      Grüße Andreas

    2. Hallo,

      den "Referer" kannst Du entsprechend schicken,
      oder Du "hängst" noch einen GET-Parameter an, dann
      kann der Kunde in seinen LogFiles sehen, dass der Besucher von Dir kommt.

      Öhm... Wie soll er den Referrer schicken? Und was soll ein GET-Parameter? Der Referrer wird doch mitgeschickt.

      Seite 1 -> Klick
      Seite 2 -> Datenbankabfrage, HTTP-Weiterleitung
      Seite 3 -> Referrer: Seite 1

      So ist das.
      Gruß
      Martin