http_referer geht bei Url Weiterleitung verloren
Andreas B.
- php
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
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
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
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
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
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
Hallo lulu
Danke. Ich werde es ausprobieren.
Grüße Andreas
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