Autor |
Nachricht |
beeviZ
Threadersteller
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 17.12.2004 12:30
Titel Eingestellte Browser-Länderkennung mit php auslesen?! |
|
|
Ich hab ne 4 sprachige Version einer Website und möchte da jetzt Leute mit ner de-DE/de-AT/... Kennung automatisch auf die Deutsche Version weiterleiten.
Frage is jetzt nur, wie krieg ich die Länderkennung die im Browser eingestellt ist raus?!
Korrigiert mich bitte wenn ich falsch liege, ich denk mal die wird im UserAgent Header mitgeschickt, richtig? Nur hab ich ja nunmal leider nich so die Ahnung von PHP und weiß wie ich die ermittle. Kann mir da mal wer n Denkanstoß oder nen Link geben?
Bedanke mich schonmal
Zuletzt bearbeitet von beeviZ am Fr 17.12.2004 12:33, insgesamt 1-mal bearbeitet
|
|
|
|
|
Achim M.
Dabei seit: 17.03.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 17.12.2004 13:00
Titel
|
|
|
Code: | $_ENV["HTTP_ACCEPT_LANGUAGE"]; |
Sehr zu empfehlen: PHPClientSniffer
Gruß
Achim
|
|
|
|
|
Anzeige
|
|
|
beeviZ
Threadersteller
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 17.12.2004 13:29
Titel
|
|
|
Irgendwie frag ich mich ja immer wieder ob es irgendwas gibt was du nicht weißt.
Aber noch n paar Fragen:
Hat der PhpClientSniffer noch irgend ne Funktion, oder ist der nur dazu da um mir zu sagen was so an Daten gesendet wird, etc..?
mit $_ENV... komm ich auch nicht großartig weiter, da ich bei php.net nichts gefunden habe dazu. Zumindest nich wenn ich nach $_ENV gesucht habe. Das Einzige was ich erfahre ist, das $_ENV selbst in nen Array geschrieben wird, und irgendwelche Umgebungsvariablen auf denen PHP läuft behinhaltet.
Und wenn mit
<? echo $_ENV["HTTP_ACCEPT_LANGUAGE"]; ?>
zeigter mir nur n leeres Dokument an. Also irgendwo hängts bei mir
|
|
|
|
|
Sarky
Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht:
|
Verfasst Fr 17.12.2004 13:43
Titel
|
|
|
Achim meint
Code: |
$_SERVER['HTTP_ACCEPT_LANGUAGE'];
|
Zuletzt bearbeitet von Sarky am Fr 17.12.2004 13:44, insgesamt 1-mal bearbeitet
|
|
|
|
|
beeviZ
Threadersteller
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 17.12.2004 18:28
Titel
|
|
|
ah ok. weiß armin also doch nich alles. hehe...
hab mir jetzt was zusammengefrickelt hier, was vermutlich nich sooo schlau ist, aber es funktioniert.
gibts da irgendwelche grundlegenden Nachteile ausser das Bots und Leute mit .Net Kennung auf die US Version geleitet werden?
Code: |
<?
$bla = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($bla) {
case 'de':
header("location: .....de");
break;
case 'en':
header("location: ........com");
break;
case 'it':
header("location: ........it");
break;
case 'es':
header("location: ........es");
break;
default:
header("location: .....de");
}
?>
|
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Fr 17.12.2004 18:38
Titel
|
|
|
Lass den Leuten, die nicht eindeutig lokalisierbar sind, einfach die Wahl... wär doch ne Idee?
|
|
|
|
|
Achim M.
Dabei seit: 17.03.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 17.12.2004 18:50
Titel
|
|
|
beeviZ hat geschrieben: | hab mir jetzt was zusammengefrickelt hier, was vermutlich nich sooo schlau ist, aber es funktioniert. |
Aber nicht mit allen Browsern: Mozilla meldet beispielsweise "de,en-us", Opera "de, en" und Safari einen riesigen Rattenschwanz an Kennungen. Dein Skript liefert zwar das richtige Ergebnis, aber nur weil default auf die deutsche Seite umleitet. Bei einer anderen Sprache und einem anderen Browser als der Internet Explorer wird er nicht funktionieren.
Gruß
Achim
|
|
|
|
|
beeviZ
Threadersteller
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 17.12.2004 19:09
Titel
|
|
|
schinken, auf den einzelnen sprachseiten gibts sowieso später landesflaggen mit denen man auf die entsprechenden seiten kommt. aber wär ne überlegung wert.
das ding is jetzt nur, das mein chef gerade als ich feierabend gemacht hab meinte, das die seite bei irgend nem provider liegt den der kunde sich ausgesucht hat, und deren paket hat kein php. also wird wohl ne javascript lösung herhalten müssen.
achim,
ich weiß, meiner meldet beispielsweise "de,en-us;q=0.7,en;q=0.3"
dafür ja das substr
also wie ich das sehe sind die ersten beiden buchstaben auf jeden fall, unabhängig ob man jetzt de-DE, de-AT, en-US oder auch de,en-us, ... hat immer DER ländercode mit der höchsten priorität. Und da kommt jetzt substr(.., 0, 2) zum einsatz mit dem ich nur die ersten beiden zeichen zurückgeben lasse, und dementsprechend umleite.
|
|
|
|
|
|
|
|
Ähnliche Themen |
browser auslesen und verschiedene php öffnen
XML mit PHP auslesen
[PHP/SQL] ID Auslesen aus DB? Wie?
XML in PHP auslesen
[PHP] URL auslesen
XML -> in PHP auslesen mit DOM
|
|