0

ページの言語に問題があります。1つの言語を選択すると、すべてのコンテンツが正しく変更されますが、リロードまたは別のページに移動すると、言語がデフォルトの言語に戻り、Cookieを含むものは正しくありません:/。localhost ではすべて正常に動作しますが、ホスティングでは動作しません。

コード:

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

session_set_cookie_paramsを使用していて、使用していないのはなぜsetcookieですか?

すべて?langのリンクにパラメーターを追加するのは面倒です。また、コードを肥大化させて読みにくくします。

于 2014-02-18T18:23:35.767 に答える
0

ここで答えを確認することをお勧めします:

PHP セッション データが保存されない

あなたが私たちに示したコードはうまく機能するので、サーバー/構成の問題に違いありません。幸運を :)

于 2013-10-02T17:58:25.363 に答える