使用PHP的多语言网站无法在实时服务器上运行,仅Vagrant

时间:2018-10-31 21:40:11

标签: php server multilingual production-environment

我正在用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服务器,因为我认为这可能有所帮助,但未成功。如前所述,它只是坚持使用默认语言,并且当我单击任何一个语言切换按钮时都不会更新。在开发环境中,它的工作完全符合预期。我真的很感谢任何想法,这里可能出什么问题,我不确定在哪里找。

提前谢谢!!莎拉。

1 个答案:

答案 0 :(得分:0)

好吧,我终于找到了原因,以防万一,这是我在

之前的页面开头发表的评论
ob_start(); 

和会话开始代码。

此问题已解决,方法是将其作为第一件事放在我的文件中,没有空白,之前没有内容。发现它在这里阅读其他线程。

感谢您的贡献!