php - 使用 PHP 的多语言网站无法在实时服务器上运行,只有 Vagrant
问题描述
我正在用 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');
我在开发和生产中有两台不同的服务器,我知道并不理想。我的流浪盒子:Ubuntu Xenial 64 和 PHP 7.0.32 & Apache 2.4.18
我今天将我的 Live Server 更新为:Centos 6.10 和 PHP 7.1 和 Apache 2.4
升级后我重新启动了 apache 服务器,因为我认为这可能会有所帮助,但没有成功。如前所述,它仅使用默认语言,并且在我单击任何语言切换按钮时都不会更新。在开发环境中,它完全按预期工作。我真的很感激这里可能出错的任何想法,我不知道在哪里看。
提前致谢!!莎拉。
解决方案
好的,我终于找到了原因,以防万一发生在其他人身上,我在页面开始之前有评论
ob_start();
和会话开始代码。
通过将它作为我文件中的第一件事解决了这个问题,没有空白空间,之前什么都没有。发现它在这里阅读其他线程。
感谢您的贡献!
推荐阅读
- python - TensorFlow 总结事件问题
- php - 我遇到了editMessageText的问题
- javascript - 使用 React 和 npm 包 'react-d3-tree' - 期望树视图在底层数据更改时更新,但它没有?
- javascript - 当应用程序加载到路径而不是根目录时,无法加载 React 应用程序的图像
- java - 使用动态构建的模式匹配带有特殊字符的整个单词
- c++ - C++中的split_view和lazy_split_view有什么区别?
- c# - FileSystemWatcher 仅在 CD 上的非法字符
- powerbi - PowerBI 报表发布问题
- javascript - 基于 props 的 ForwardRef 类型
- wordpress - 当用户来自 URL 时如何隐藏元素