0

我的页面上的语言有问题。当我选择一种语言时,它会正确地使用它,所有内容都会改变,但是当我重新加载或转到另一个页面时,语言会变回默认语言,带有 cookie 的东西不是正确的:/。在本地主机上一切正常,但在托管上不起作用。

代码:

<?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;
?>
4

2 回答 2

0

我建议在这里检查答案:

PHP 会话数据未保存

您向我们展示的代码运行良好,因此它一定是服务器/配置问题。祝你好运 :)

于 2013-10-02T17:58:25.363 回答
0

你为什么使用session_set_cookie_params而不是setcookie

在每个链接上添加?lang参数会很烦人。并使您的代码膨胀并使其可读性降低。

于 2014-02-18T18:23:35.767 回答