mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 08:00 Benutzername: Passwort: Auto-Login

Thema: Eingestellte Browser-Länderkennung mit php auslesen?! vom 17.12.2004


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Eingestellte Browser-Länderkennung mit php auslesen?!
Seite: 1, 2  Weiter
Autor Nachricht
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 17.12.2004 12:30
Titel

Eingestellte Browser-Länderkennung mit php auslesen?!

Antworten mit Zitat Zum Seitenanfang

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 Lächel


Zuletzt bearbeitet von beeviZ am Fr 17.12.2004 12:33, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Achim M.

Dabei seit: 17.03.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 17.12.2004 13:00
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
$_ENV["HTTP_ACCEPT_LANGUAGE"];


Sehr zu empfehlen: PHPClientSniffer

Gruß

Achim
  View user's profile Private Nachricht senden
Anzeige
Anzeige
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 17.12.2004 13:29
Titel

Antworten mit Zitat Zum Seitenanfang

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 Menno!
  View user's profile Private Nachricht senden
Sarky

Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht: Männlich
Verfasst Fr 17.12.2004 13:43
Titel

Antworten mit Zitat Zum Seitenanfang

Achim meint

Code:

$_SERVER['HTTP_ACCEPT_LANGUAGE'];


*zwinker*


Zuletzt bearbeitet von Sarky am Fr 17.12.2004 13:44, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 17.12.2004 18:28
Titel

Antworten mit Zitat Zum Seitenanfang

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");
}
?>
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst Fr 17.12.2004 18:38
Titel

Antworten mit Zitat Zum Seitenanfang

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: Männlich
Verfasst Fr 17.12.2004 18:50
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 17.12.2004 19:09
Titel

Antworten mit Zitat Zum Seitenanfang

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. *zwinker*
  View user's profile Private Nachricht senden
 
Ä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
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.