Browser-Adress-Zeile auslesen !?
uncSteve
- php
0 CaptainSolo0 Carsten0 lulu0 Thomas Meinike
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
Du kannst die URL doch auch mit JS auslesen!
Gruss,
CS
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
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
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
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
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
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
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
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=
----
KAPIERT!
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
Huhu Steve
if ($HTTP_REFERER == 'http://www.domain1.de') {
spendier dem referer noch ein 2. r
Viele Grüße
lulu
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
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
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.
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
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
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