HTTP Accept Language?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfragen
browser
code
dank
fehler
funktionieren
funktioniert http
header
http
land
manual
nachfolgender code
session
setzen
sprache
string
url
variables server
verzeichnis
weiterleiten
-
Wie funktioniert HTTP Accept Language in PHP?
Ich habe mir schon viele Seiten angeguckt, aber ich werde daraus nicht ganz schlüssig.
Vielleicht kann mir mal jemand als Beispiel zeigen, wie es funktioniert, wenn Sprache="Deutsch", ins Verzeichnis "/de" zu wechseln, bei Sprache="English" in "/en".
Danke. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
ich weiß nicht ob ich dich richtig verstanden habe ,
aber mach es doch über eine Weiterleitung !
Im normalfall sendet dir bereits der Browser die information ,aus welchem Land dein nutzer kommt /welche sprache er spricht.
dementsprechend kannst du weiterleiten nach /de/ (Accept-Language HTTP header)
sollte sich dein User nun umentscheiden alles in englisch haben zu wollen, würde ich dies über eine Session[var] speichern.
und diese abfragen !
wenn Session[var] gesetzt -> dann ab ins verzeichniss /de/ oder /en/
wenn nicht...Schau nach dem browser !
wenn der die info nicht gibt.. setze einen standart / deutsch
nun musst du halt noch die jeweiligen sprachfiles einbinden
je nach dem wie deine Variable /de/ /en/ gesetzt ist
Reden wir vom selben ?!
Beitrag zuletzt geändert: 6.10.2009 12:51:14 von worldwhiterabbit -
Du musst einfach in die Variable $_SERVER[ 'HTTP_ACCEPT_LANGUAGE' ] schauen (Link)
Und je nachdem, was dort drin steht, kannst du dann weiterleiten
header("Location: http://www.example.com/de");
Dies geschieht mithilfe der Funktion header()
@Vorposter: Mit Sessions hat das nichts zu tun.
Beitrag zuletzt geändert: 6.10.2009 13:11:25 von bladehunter -
Also müsste folgender Code funktionieren:
if ($_SERVER_ACCEPT_LANGUAGE = 'de') { header(Location: http://www.exaple.de/de); } else header(Location: http://example.de/en);
Tut er leider aber nicht.
Fehler:
Parse error: syntax error, unexpected ':' in /home/webpages/lima-city/nico-stuhlfauth/html/land.
Beitrag zuletzt geändert: 6.10.2009 15:03:29 von nico-stuhlfauth -
Die Angaben in Header() müssen auch als String übergeben werden.
if ($_SERVER_ACCEPT_LANGUAGE = 'de') { header('Location: http://www.exaple.de/de'); } else header('Location: http://example.de/en'); die();
Das die() steht da nur um zu verhindern das nachfolgender Code noch ausgeführt wird. -
nico-stuhlfauth schrieb:
if ($_SERVER_ACCEPT_LANGUAGE = 'de') { header(Location: http://www.exaple.de/de); } else header(Location: http://example.de/en);
Da sind mehrere Fehler:
-Ich nehme an, du willst in der ersten Zeile ein Doppeltes Gleichheitszeichen setzen.
-Der Parameter für header() muss ein String sein. Du hast die Anführungszeichen vergessen.
-Die Variable, die du prüfen willst, heißt $_SERVER[ 'HTTP_ACCEPT_LANGUAGE' ] und nix anderes.
und bedenke, dass ein Browser auch mehrere Sprachen akzeptieren kann. Am besten du stellst in deinem Browser mal mehrere Sprachen ein und testest, was dein Script sagt.
Beitrag zuletzt geändert: 6.10.2009 15:26:28 von bladehunter -
if ($_SERVER[ 'HTTP_ACCEPT_LANGUAGE' ] == 'de') { header('Location: http://www.exaple.de/de'); } else { header('Location: http://example.de/en'); }
Okay ich hab mal ein paar fehler rausgenommen.
sollte jetzt funktionieren aber bin mir nicht sicher. Ich habe es nicht ausprobiert.
MfG
karlsve
edit:
Danke an nikic.
:D
habe ich doch tatsächlich selbst noch einen Fehler eingebaut gehabt.
jetzt aber
Beitrag zuletzt geändert: 6.10.2009 16:02:22 von karlsve -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage