2011-11-04 66 views
1

我有php多语言的问题。我使用函数* check_lang *,它在一个页面中工作正常,但是一旦我转到另一页面,$ _SESSION ['lang']变量$ lang变回默认值(en)。问题是什么?多语言的PHP问题

<?php 

    function check_lang() { 
    if(isset($_GET['lang']) 
     { 
     $lang = $_GET['lang']; 
     $_SESSION['lang'] = $lang 
     } 

    if (!isset($_SESSION['lang'])) { 
     $lang = 'en'; 

    } else { 
     $_SESSION['lang']=$lang; 
     } 

    //directory name 
    $dir = 'languages'; 
    return "$dir/$lang.lng"; 
    } 

    ?> 
+0

你在'check_lang()'之前调用'session_start()'吗? – nickb

回答

3

你必须:

session_start(); 

在每个要在其中使用会话变量你的脚本的顶部。

+0

谢谢。这很明显! – Lina

0

您需要在每个计划使用$ _SESSION [] global的页面上调用session_start()。这就是告诉PHP它应该从用户的cookie或查询字符串中查找session_id,以便PHP知道使用哪个会话的值。

Reference