Malcolm Beck´s: HTTP_ACCEPT_LANGUAGE - Weiterleitung auf engl. Seite mit Fehler

Beitrag lesen

مرحبا

  

> <?php  
>     $sprache = $_SERVER["HTTP_ACCEPT_LANGUAGE"];  
>     switch($sprache) {  
>   
>    case 'en': $weiterleitung = 'index_en.html';break;  
>    default: $weiterleitung = 'index.php';  
>     }  
>     header ("location: $weiterleitung");  
> ?>

Steht das so in deiner index.php? Selbst wenn du das header-Problem löst, wirst du hier (ungetestet) eine Endlos-Schleife produzieren, da es keine bedingung gibt, die dass weiterleiten beendet.

Und, wie suit schon schrieb, reagiert dein Script nur auf 'en', allerdings gibt es mehr als nur 'en'.

/* ohne Anspruch auf vollständigkeit */  
"en" => "English",  
"en-gb" => "English/United Kingdom",  
"en-us" => "English/United Satates",  
"en-au" => "English/Australian",  
"en-ca" => "English/Canada",  
"en-nz" => "English/New Zealand",  
"en-ie" => "English/Ireland",  
"en-za" => "English/South Africa",  
"en-jm" => "English/Jamaica",  
"en-bz" => "English/Belize",  
"en-tt" => "English/Trinidad"  
/* Mind. die ersten 3 können als 'en' durch gehen */  

Was noch hinzu kommt ist, dass $_SERVER["HTTP_ACCEPT_LANGUAGE"] auch Leer sein kann, was in deinem Fall zu einer "Notice" führen wird, wenn error_reporting auf on ist.

Ich sitz seit 3 Wochen an einem ähnlichen, allerdings etwas Komplexeren Fall (Undefinierte Anzahl Sprachen); wenn Interesse besteht, kann ich ein paar Snippets posten, die dass ganze vereinfachen.

mfg