2011-11-04 107 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