Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP可以';无法在一页上检索cookie_Php_Cookies_Internationalization - Fatal编程技术网

PHP可以';无法在一页上检索cookie

PHP可以';无法在一页上检索cookie,php,cookies,internationalization,Php,Cookies,Internationalization,我的网站有两种语言(英语和德语),用户可以通过点击按钮进行选择。然后,它设置一个cookie来存储该决策,存储时间为24小时。我还使用了GitHub中的php-i18n类。它的工作原理是将所有语言文本存储在特定的*.ini文件中。根据所选语言,德语或英语文本通过PHP变量显示。我希望我解释得足够好 除了我的“法律细节”页面,所有这些都有效。因为这一页有很多文本,我对这一页做了两个版本,一个是英语,一个是德语。根据选择的语言,我想显示相应的页面版本。但不知何故,它最终总是成为“默认德语”版本。我可

我的网站有两种语言(英语和德语),用户可以通过点击按钮进行选择。然后,它设置一个cookie来存储该决策,存储时间为
24小时
。我还使用了
GitHub
中的
php-i18n
类。它的工作原理是将所有语言文本存储在特定的
*.ini
文件中。根据所选语言,德语或英语文本通过
PHP
变量显示。我希望我解释得足够好

除了我的“法律细节”页面,所有这些都有效。因为这一页有很多文本,我对这一页做了两个版本,一个是英语,一个是德语。根据选择的语言,我想显示相应的页面版本。但不知何故,它最终总是成为“默认德语”版本。我可能遗漏了一些非常明显的东西,比如为什么我的代码不能工作

PHP
在页眉中(动态,显示在所有页面之前):

PHP
在法律详细信息页面:

include 'templates/header.php';

// show english or german legal details
if(isset($_GET['lang'])) {
  $lang=$_GET['lang'];
  if ($lang == 'de') {
    echo "k, german impressum";
    include 'impressum-de.php';
  } else if ($lang == 'en') {
    echo "english impressum";
    include 'impressum-en.php';
  }
} else if ($language == 'de') {
  echo "german impressum b/c cookie";
  include 'impressum-de.php';
} else if ($language == 'en') {
  echo "english impressum b/c cookie";
  include 'impressum-en.php';
} else {
  echo "default German impressum";
  include 'impressum-de.php';
}
按钮:

<div class="language">
  <a href="?lang=de" name="lang-de" class="lang-de">DE</a>/
  <a href="?lang=en" name="lang-en" class="lang-en">EN</a>
</div>

/
有人有什么意见吗?如何改进代码的想法也总是很受欢迎,因为我还在学习。

试试这个:(不是“elseif”->它的“elseif”)


我认为cookie设置是正确的,你的问题在你的代码中的其他地方,那么问题是否与链接有关?(我将把它添加到我的帖子中)
<div class="language">
  <a href="?lang=de" name="lang-de" class="lang-de">DE</a>/
  <a href="?lang=en" name="lang-en" class="lang-en">EN</a>
</div>
include 'templates/header.php';

// show english or german legal details
if(isset($_GET['lang'])) {
  $lang=$_GET['lang'];
  if ($lang == 'de') {
    echo "k, german impressum";
    include 'impressum-de.php';
  } elseif ($lang == 'en') {
    echo "english impressum";
    include 'impressum-en.php';
  }
} elseif ($language == 'de') {
  echo "german impressum b/c cookie";
  include 'impressum-de.php';
} elseif ($language == 'en') {
  echo "english impressum b/c cookie";
  include 'impressum-en.php';
} else {
  echo "default German impressum";
  include 'impressum-de.php';
}