2010-04-13 5 views
1

J'essaie de mettre la deuxième langue sur ma page Web. J'ai décidé d'utiliser des fichiers différents pour les différentes langues dites séparées par le chemin - language/pl/projects.ln contient du texte en polonais, language/en/projects.ln - Anglais. Ces extensions sont juste pour dire des fichiers de langue de l'autre, le contenu est simple php:PHP4 y compris le fichier pendant la session

$lang["desc"]["fabrics"]["title"] = "MATERIAŁY"; 
$lang["desc"]["fabrics"]["short_text"] = "Jakiś tam tekst na temat materiałów"; 
$lang["desc"]["services"]["title"] = "USŁUGI"; 
$lang["desc"]["services"]["short_text"] = "Jakiś tam tekst na temat usłóg"; 

Et puis sur la page d'index je l'utilise comme ceci:

session_start(); 
if (isset($_SESSION["lang"])) { 
    $language = $_SESSION["lang"]; 
} else { 
    $language = "pl"; 
} 
include_once("language/$language/projects.ln"); 
print $lang["desc"]["fabrics"]["title"]; 

Le problème est que si la session variable n'est pas définie tout fonctionne bien et le contenu de l'élément de tableau est affiché, mais une fois que je change et défini $_SESSION["lang"] rien n'est affiché. J'ai testé si l'inclusion elle-même fonctionne comme il se doit en mettant print "sth"; au début du fichier projects.ln et cela fonctionne tout à la fois avec $_SESSION["lang"] ensemble et non réglé.

Aidez-nous s'il vous plaît.

Répondre

1
  1. Pouvez-vous tester la valeur de retour de session_start()? Si elle est false, elle n'a pas pu démarrer la session.
  2. Est-il appelé avant que vous ne fournissiez quoi que ce soit au navigateur? Si les en-têtes ont déjà été envoyés et que le niveau de error_reporting est trop bas, vous ne verrez même pas le message d'erreur.
  3. Stupide, mais - définissez-vous la valeur de $ _SESSION ['lang'] à une valeur valide comme "en"? Est-ce que la traduction anglaise se charge correctement lorsque vous l'utilisez comme valeur par défaut dans un bloc else au lieu de "pl"?
  4. "jakiś tam tekst na temat de" -> "de usług" :)

Pouvez-vous nous dire ce que celui-ci sortie:

if(session_start()) { 
    echo SID, '<br/>'; 
    if(isset($_SESSION['lang'])) { 
     echo 'lang = "',$_SESSION['lang'], '"'; 
    } 
} 
0

session commence bien et par hasard je réussi à corriger il. J'ai renommé $_SESSION['lang'] en $_SESSION['curr_lang'] et il fonctionne maintenant bien. Il semble qu'il n'aimait pas le tableau et la variable de session ayant le même nom (?).

Questions connexes