• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Länder Automatisch Verweisen

Nimmert

Neues Mitglied
Hallo,

Ich hab da so ein "problemchen"...

Ich hab eine Einterpage die zu einer Config Datei führt und einem je nach Browse weiterleitet dies möchte ich gerne erweitern undzwar das er je nach Browser un nach Land entscheidet sprich beispiel jemmand benutzt Morzilla Firefox und kommt aus Deutschland dann wird er nach www.domain.de/morzilla-firefox/de weitergeleitet .. und jemmand der aus england kommt und Internet Explorer nutzt nach www.domain.de/internet-explorer/en geleitet wird .. und so weiter ..

hier meine jetztige Config:
<?php
$handle = fopen("logs/log_alles.txt", "a+");
foreach($_POST as $variable => $value) {
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");
}
fwrite($handle, "\r\n");
fclose($handle) ;
$handle = fopen("logs/log_beitritt.txt", "a+");
foreach($_POST as $variable => $value) {
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");
}
fclose($handle) ;
if (eregi("Internet Explorer",getenv("HTTP_USER_AGENT"))) {
Header("Location: http://www.lobsus-nachtwache.de/index_ie.html");
exit;
}
else if (eregi("Netscape",getenv("HTTP_USER_AGENT"))) {
Header("Location: http://www.lobsus-nachtwache.de/index_ns.html");
exit;
}
else if (eregi("Chrome",getenv("HTTP_USER_AGENT"))) {
Header("Location: http://www.lobsus-nachtwache.de/index_chrome.html");
exit;
}
else if (eregi("Mozilla",getenv("HTTP_USER_AGENT"))) {
Header("Location: http://www.lobsus-nachtwache.de/index_firefox.html");
exit;
}
else if (eregi("Opera",getenv("HTTP_USER_AGENT"))) {
Header("Location: http://www.lobsus-nachtwache.de/index_index_opera.html");
exit;
}
else if (eregi("Safari",getenv("HTTP_USER_AGENT"))) {
Header("Location: http://www.lobsus-nachtwache.de/index_safari.html");
exit;
}
else if (eregi("Konqueror",getenv("HTTP_USER_AGENT"))) {
Header("Location: http://www.lobsus-nachtwache.de/index_konqueror.html");
exit;
}
else {
Header("Location: http://www.lobsus-nachtwache.de/network/error.php");
exit;
}
exit;
?>
 
Zuletzt bearbeitet:
Zuallererst: Die eregi() Funktion ist veraltet. Verwende preg_match().

Zu Deinem Problem: Willst Du wirklich den georgraphischen Standort des Benutzers ermitteln? Oder eher darauf schliessen welche Sprache der Benutzer bevorzugt?
Ich gehe mal von letzterem aus, da Du fuer England en als Kuerzel angegeben hast, welches fuer die Englische Sprache steht (in ISO 639-1), der Laendercode waere nach ISO 3166 GB.

Dies laesst sich recht einfach ermitteln, da der Browser im Accept-Language: Header die preferierten Sprachen uebermittelt. In PHP kannst Du mittels $_SERVER['HTTP_ACCEPT_LANGUAGE'] auf diesen Wert zugreifen.

Dir sollte aber klar sein, dass nicht gerade toll ist, wenn Du versucht den Benutzer nach seinem Browser/Sprache einzuschraenken. Ist auch genauso unzuverlaessig, da die Werte vom Benutzer geaendert werden koennen.
Gestalte dein Seite also lieber so, dass in jedem Browser benutzbar ist und Du dem Benutzer immer die moeglichkeit laesst die Sprache auch selbst wieder umzustellen. Die Mozilla Webseiten bieten da ein schoenes Beispiel.
 
also beispiel
if (preg_match("Internet Explorer",getenv("HTTP_USER_AGENT")))
{
if (preg_match("Deutschland",getenv("HTTP_ACCEPT_LANGUAGE")))
{
Header("Location: http://www.lobsus-nachtwache.de/index/ie/deutschland/index.html");
}
else if (preg_match("England",getenv("HTTP_ACCEPT_LANGUAGE")))
{
Header("Location: http://www.lobsus-nachtwache.de/index/ie/england/index.html");
}
else if (preg_match("Italien",getenv("HTTP_ACCEPT_LANGUAGE")))
{
Header("Location: http://www.lobsus-nachtwache.de/index/ie/italien/index.html");
}
exit;
}
else if (preg_match("Morzilla",getenv("HTTP_USER_AGENT")))
{
if (preg_match("Deutschland",getenv("HTTP_ACCEPT_LANGUAGE")))
{
Header("Location: http://www.lobsus-nachtwache.de/index/firefox/deutschland/index.html");
}
else if (preg_match("England",getenv("HTTP_ACCEPT_LANGUAGE")))
{
Header("Location: http://www.lobsus-nachtwache.de/index/firefox/england/index.html");
}
else if (preg_match("Italien",getenv("HTTP_ACCEPT_LANGUAGE")))
{
Header("Location: http://www.lobsus-nachtwache.de/index/firefox/italien/index.html");
}
exit;
}
 
Warum unterscheidest du denn nach Browser?

Lass dir mal ausgeben, was $_SERVER['HTTP_ACCEPT_LANGUAGE']; enthält. Das sind keine Ländernamen.
 
omg bei mir
de-de,de;q=0.8,en-us;q=0.5,en;q=0.3

das bedeutet jetzt was ?

EDIT: Ah also.


if (preg_match("Internet Explorer",getenv("HTTP_USER_AGENT")))
{
if (preg_match("de-de,de",getenv("HTTP_ACCEPT_LANGUAGE")))
{
Header("Location: http://www.lobsus-nachtwache.de/index/ie/deutschland/index.html");
}
else if (preg_match("en-en,en",getenv("HTTP_ACCEPT_LANGUAGE")))
{
Header("Location: http://www.lobsus-nachtwache.de/index/ie/england/index.html");
}
else if (preg_match("it-it,it",getenv("HTTP_ACCEPT_LANGUAGE"))) // KA ob it = italien ist muss manschauen
{
Header("Location: http://www.lobsus-nachtwache.de/index/ie/italien/index.html");
}
exit;
}
 
Zuletzt bearbeitet:

Neueste Beiträge

Zurück
Oben