2013-10-02 57 views
0

我的頁面上有語言問題。當我選擇一種語言時,它會正確使用它,所有內容都會更改,但是當我重新加載或轉到另一頁時,語言會變回默認語言,但使用Cookie的內容不是正確的:/。在本地主機上的所有作品都很好,但在主機不工作。語言問題(Cookie/Session)

代碼:

<?php 
session_start(); 
header('Cache-control: private'); 

if(isSet($_GET['lang'])) 
{ 
    $lang = $_GET['lang']; 

    $_SESSION['lang'] = $lang; 
    session_set_cookie_params('lang', $lang, time() + (3600 * 24 * 30)); 
} 
else if(isSet($_SESSION['lang'])) 
{ 
    $lang = $_SESSION['lang']; 
} 
else if(isSet($_COOKIE['lang'])) 
{ 
    $lang = $_COOKIE['lang']; 
} 
else 
{ 
    $lang = 'lv'; 
} 

switch ($lang) { 
    case 'lv': 
     $lang_file = 'lv.php'; 
     break; 
    case 'ru': 
     $lang_file = 'ru.php'; 
     break; 
    default: 
     $lang_file = 'lv.php'; 
} 

include_once 'lang/'.$lang_file; 
?> 
+0

你確定你已經正確地上傳了一切嗎?服務器上的ru.php是最新的嗎? – OIS

+0

你每次點擊頁面時都設置語言嗎?你從我假設的網址獲取語言?也許發佈你正在測試的URL? 另一種可能性是你的主機不允許你亂搞$ _SESSION你會得到任何錯誤嗎? – mam8cc

+0

是的,我上傳了所有corectly。 –

回答

0

我建議檢查一下這裏的答案:那你給我們

PHP Session data not being saved

代碼工作很好,所以它必須是一個服務器/配置問題。祝你好運:)

+0

我得到了我想要的。我在我的鏈接添加了這個?lang = <?php echo $ _SESSION ['lang']; ?>所有作品都很好,thanx都是:) –

0

你爲什麼使用session_set_cookie_params而不是setcookie

上加上?lang參數每個連接都會令人厭煩。並膨脹你的代碼,使其不易讀。