我正在用PHP构建一个多语言网站,并使其完美运行并在我的Vagrant框中运行,根据$ SESSION [lang]变量更改文本,将该网站上载到我的实时服务器,突然该语言没有任何改变更多,它只是坚持使用默认语言。
这是我用来向网站提供相应语言文件的代码,其中包括与要使用每种语言使用的文本的关联数组:
<?php
ob_start();
if(!isset($_SESSION)) {
session_start();
}
// language switch
if (!isset($_SESSION['lang']))
$_SESSION['lang'] = "en";
else if (isset($_GET['lang']) && ($_SESSION['lang'] != $_GET['lang']) && !empty($_GET['lang'])) {
if ($_GET['lang'] == "en")
$_SESSION['lang'] = "en";
else if ($_GET['lang'] == "es")
$_SESSION['lang'] = "es";
else if ($_GET['lang'] == "de")
$_SESSION['lang'] = "de";
}
require_once ('content/language/' . $_SESSION['lang'] . '.php');
我在开发和生产中有两个不同的服务器,我知道这并不理想。我的无业游民框: 具有PHP 7.0.32和Apache 2.4.18的Ubuntu Xenial 64
我今天将Live Server更新为: 具有PHP 7.1和Apache 2.4的Centos 6.10
升级后,我重新启动了apache服务器,因为我认为这可能有所帮助,但未成功。如前所述,它只是坚持使用默认语言,并且当我单击任何一个语言切换按钮时都不会更新。在开发环境中,它的工作完全符合预期。我真的很感谢任何想法,这里可能出什么问题,我不确定在哪里找。
提前谢谢!!莎拉。
答案 0 :(得分:0)
好吧,我终于找到了原因,以防万一,这是我在
之前的页面开头发表的评论ob_start();
和会话开始代码。
此问题已解决,方法是将其作为第一件事放在我的文件中,没有空白,之前没有内容。发现它在这里阅读其他线程。
感谢您的贡献!