Weiterleitung nach Land |
tobias
Foren-Team Threadstarter
Beiträge: 708 |
Kann mir jemand sagen, wie ich einen User je nach dem Land, aus dem er kommt, auf eine bestimmte Seite weiterleiten kann?
Z.b:
Aus Deutschland -> leite weiter zu de.php
Das lässt sich doch irgendwie machen, oder?
|
 Profil
Website
Editieren
Zitieren
|
Jürgen
Feiertags-Poster
Beiträge: 32 |
Hi,
hier ist zunächst einmal von Deiner Seite zu erklären, wie Du feststellst, aus welchem Land der User zu Deiner Seite gelangt.
Danach ist Dir dann mit Sicherheit zu helfen.
MfG
Jürgen
|
 Profil
Website
Editieren
Zitieren
|
michael
Foren-Team
Beiträge: 1930 |
ich denke mal das ist das problem Aber das geht! Steht ja in den Logfiles auch drin... musst du Provider-Adresse auslesen (javascript oder php - damit geht das glaub ich) alles nach dem "." absplitten und dann weiterleiten!
|
 Profil
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
Hier meine Lösung:
$target_location = ereg_replace("/[^/]*$","",$REDIRECT_SCRIPT_URI);
$host = gethostbyaddr($GLOBALS["REMOTE_ADDR"]);
if (eregi("^de",$HTTP_ACCEPT_LANGUAGE) || eregi(".de$",$host)) {
$target_location .= "/de/index.php";
} else {
$target_location .= "/en/index.php";
}
header("Location: ".$target_location);
?>
Ich schau nach ob die Browsersprache deutsch oder die Länderkennung de ist. Wenn eine der beiden Bedingungen zutrifft, geht es auf die deutsche Seite, ansonsten auf die englische.
Thomas
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
Jürgen
Feiertags-Poster
Beiträge: 32 |
Guten Tag zusammen!
$host = gethostbyaddr($GLOBALS["REMOTE_ADDR"]);
funktioniert eigentlich nur, wenn 1. der Nameserver bekannt ist und 2. der User eine feste IP besitzt. Was sehr unwahrscheinlich ist. Die meisten User kommen über einen ISP ins Internet. Falls dieser ein Ausländer ist, stimmt die Länderkennung sowieso nicht. D. h. über den Referer kommt man hier nicht zum Ziel. Falls der User direkt eine Seite ansteuert, bleibt die Information "Referer" leer.
Die einzige Möglichkeit den User zu identifizieren wäre die Browserkennung wie: z. B.: -Mozilla/4.0 (compatible; MSIE 5.01; Windows 98-. Der sog. $USER_AGENT. Dieser beinhaltet meistens -wie oben zu erkennen- aber keine Länder- bzw. Sprachkennung.
MfG
Jürgen
|
 Profil
Website
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
Deshalb ja auch die 2. Bedingung mit der Browsersprache. :smile
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
Jürgen
Feiertags-Poster
Beiträge: 32 |
< Deshalb ja auch die 2. Bedingung mit der Browsersprache.
Ist hier die Landessprache zu erkennen ??
Wenn ja, wo?
MfG
Jürgen
|
 Profil
Website
Editieren
Zitieren
|
Jürgen
Feiertags-Poster
Beiträge: 32 |
Hi noch einmal!
Ich schick hier einmal einen Auszug aus meiner eigenen Counterdatei (meine Domain habe ich gegen "irgendwas" ausgetauscht).
http://www.irgendwas.de/navigation.html|http%3A//www.google.com/ie%3Fq%3D+Immobilien+in+Duisburg%26hl%3Dde|62.104.210.72|Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90; QXW0339c)||800|600|16
Hier sind Referer inkl. Query String, Browser Info und Bildschirmauflösung des Users erfasst worden. Eine Länderkennung vermisse ich jedoch.
MfG
Jürgen
|
 Profil
Website
Editieren
Zitieren
|
c3o
Posting-Schinder
Beiträge: 585 |
Erstens, gethostbyaddr() geht nicht nur bei fixen IPs. Es geht zwar auch nicht immer, aber doch in über 3/4 der Fälle. Trotzdem sagt die Domain wenig aus, so sind zB alle T-Online-User auf t-dialin.net, also keine .de!
Zweitens gibts die AcceptLanguage-Einstellung im Browser ($HTTP_ACCEPT_LANGUAGE), die subjective in seinem guten Beispielscript auch abfragt.
Die kann man im IE zB bei den Internet-Optionen -> Sprachen einstellen.
Dann gäbe es noch die Sprache des *Browsers*, also der Buttons etc, die Netscape in eckigen Klammern im UserAgent mitliefert, ca so: Mozilla/4.0 [de] (Netscape 4.78; I; Win98).
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
Jürgen
Feiertags-Poster
Beiträge: 32 |
Hi zusammen!
<($HTTP_ACCEPT_LANGUAGE), die subjective in seinem guten Beispielscript auch abfragt.
Die kann man im IE zB bei den Internet-Optionen -> Sprachen einstellen.
Genau das ist es. Wenn der User diese Einstellungen nicht durchführt, können diese auch nicht weitergeleitet werden. In meinen eigenen logs finde ich die Länderkennung bei ca. 5 von 100 Usern.
< Dann gäbe es noch die Sprache des *Browsers*, also der Buttons etc, die Netscape in eckigen Klammern im UserAgent mitliefert, ca so: Mozilla/4.0 [de] (Netscape 4.78; I; Win98).
Netscape nutzten nur noch etwa 10-12% der User. Die Ausbeute wär also ziemlich mager.
Natürlich stimmt es, was Ihr bereits ausgeführt habt. Aber was nutzt es, wenn nur der geringste Teil der User damit erfasst werden kann.
Der vernünftigste Weg ist meines Erachtens der, dem User eine Einstiegseite mit den Flaggen für die einzelnen Landessprachen anzubieten.
MfG
Jürgen
|
 Profil
Website
Editieren
Zitieren
|
c3o
Posting-Schinder
Beiträge: 585 |
Nur 5% mit Länderkennung??
Die Sprache ist im Normallfall im Browser schon voreingestellt, da muss man gar nichts ändern.
Hier aktuelle, über $HTTP_ACCEPT_LANGUAGE ermittelte Stats von einer meiner Seiten. Ich lasse ihn zwar nicht loggen, bei wievielen er keinen Wert bekommt, aber da diese Stats erst seit wenigen Tagen laufen müssten das so gut wie alle Besucher gewesen sein.
Trotzdem: Klar ist eine Fahnen-Seite empfehlenswert, und es muss auf jeden Fall eine Möglichkeit geben, zur anderen Sprachversion zu gelangen.
PS: Falls einer die ?-Sprachenkürzel erkennt, wär ich über ne Meldung froh.
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
tobias
Foren-Team Threadstarter
Beiträge: 708 |
Danke erstmal an alle.
|
 Profil
Website
Editieren
Zitieren
|
Jürgen
Feiertags-Poster
Beiträge: 32 |
Hi c3o,
Deine Erfahrungen sind wirklich interessant für mich. Vielleicht habe ich da irgendwo eine Denkblockade. Werde noch einmal grübeln müssen.
Vielleicht brauche ich dann Deinen Rat. Also bis bald.
MfG
Jürgen
|
 Profil
Website
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
"Browsersprache" wahr wohl etwas ungünstig gewählt. Es ist halt die Sprache, welche der Browser beim Abruf bevorzugen soll. Man muss hier jedoch beachten, das sie nicht immer "de" ist. "de_DE" ist zB auch möglich. Deshalb prüfe ich nur darauf, ob sie mit "de" beginnt.
Ein typisches Problem tritt aber auf, wenn ein User mit dem englischen Mozilla über T-Online surft. Die Domain endet auf ".net" und als Sprache schickt der Browser "en".
Man könnte intern noch ein Datenbank führen die domain.tld einem Land zuordnet. Falls eine Domain nun nicht in der Tabelle vorhanden ist, könnte man ein WHOIS machen, die Daten parsen und sie entsprechend eintragen.
Falls eine Domain nicht aufgelöst werden kann, könnte man mit einem traceroute alle Rechner auf dem Weg herausfinden. Vieleicht wird ja einer davor aufgelöst...
Ich denke damit ist man so ziemlich am Ende angelangt. Aber selbst jetzt ist die Verzweigung nicht 100%ig. So können ein Ami in einem Berliner INet-Cafe sitzen.
Eine manuelle Umschaltmöglichkeit ist also trotzdem empfehlenswert.
Man sollte auch das Verhältnis zwischen Nutzen und Aufwand beachten...
cu
Thomas
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
KAL
Otto-Normal-Poster
Beiträge: 70 |
hmm weiterleitung nach land.. wozu???
---
Hmmm.... Signaturen----
|
 Profil
E-Mail
Website
Editieren
Zitieren
|