【问题标题】:Language problems (Cookie/Session)语言问题(Cookie/会话)
【发布时间】:2014-02-19 02:32:17
【问题描述】:

我的页面上的语言有问题。当我选择一种语言时,它会正确地使用它,所有内容都会改变,但是当我重新加载或转到另一个页面时,语言会变回默认语言,带有 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;
?>

【问题讨论】:

  • 您确定您已正确上传所有内容吗?服务器上的 ru.php 是最新的吗?
  • 您是否在每次点击页面时都设置语言?您是从我假设的 URL 中获取语言的吗?也许发布您正在测试的 URL?另一种可能性是您的主机不允许您弄乱 $_SESSION 您是否遇到任何错误?
  • 是的,我都正确上传了。
  • @mam8cc 不,我没有收到任何错误:/,我在本地主机上设置了语言及其保存,我可以访问我的所有页面,但在托管时他们只是将语言设置为默认值。
  • 能否请您发布您用于测试的网址?即localhost:8000/?foo=bar

标签: php cookies session-cookies multilingual


【解决方案1】:

我建议在这里查看答案:

PHP Session data not being saved

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

【讨论】:

  • 我得到了我想要的。我在我的链接中添加了这个 ?lang= 一切正常,感谢所有 :)
【解决方案2】:

您为什么使用session_set_cookie_params 而不是setcookie

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多