Php 多语言站点可以在本地主机上工作,但不能在Internet上工作
我创建了一个网站,上面有3个lang,网站在本地主机上运行良好,但当我上传它时,默认lang是EN,每当我在web上更改lang时,比方说从EN更改为FR,页面就会在FR上继续运行,在主页上重定向我,网站上的所有文本都在FR上,这没关系,但在那之后,当我尝试单击时,让我们谈谈我们,然后它自己把它改回默认的语言,并向我展示关于我们的页面,但在默认语言。。。 下面是它的外观代码示例 这是select.php,我在每个页面上包含一次这个文件Php 多语言站点可以在本地主机上工作,但不能在Internet上工作,php,html,web,multilingual,Php,Html,Web,Multilingual,我创建了一个网站,上面有3个lang,网站在本地主机上运行良好,但当我上传它时,默认lang是EN,每当我在web上更改lang时,比方说从EN更改为FR,页面就会在FR上继续运行,在主页上重定向我,网站上的所有文本都在FR上,这没关系,但在那之后,当我尝试单击时,让我们谈谈我们,然后它自己把它改回默认的语言,并向我展示关于我们的页面,但在默认语言。。。 下面是它的外观代码示例 这是select.php,我在每个页面上包含一次这个文件 <?php session_start(); head
<?php
session_start();
header('Cache-control: private'); // IE 6 FIX
if(isSet($_GET['lang']))
{
$lang = $_GET['lang'];
// register the session and set the cookie
$_SESSION['lang'] = $lang;
setcookie("lang", $lang, time() + (3600 * 24 * 30));
}
else if(isSet($_SESSION['lang']))
{
$lang = $_SESSION['lang'];
}
else if(isSet($_COOKIE['lang']))
{
$lang = $_COOKIE['lang'];
}
else
{
$lang = 'en';
}
switch ($lang) {
case 'en':
$lang_file = 'lang.en.php';
break;
case 'fr':
$lang_file = 'lang.fr.php';
break;
case 'de':
$lang_file = 'lang.de.php';
break;
default:
$lang_file = 'lang.en.php';
}
include_once 'lang/'.$lang_file;
其他两种语言也是一样的
我只是在index.php中加入了这个
应该是这样的:
Array ( [lang] => lang value to put in session [something_1] => something value to put in session )
Array ( [lang] => lang value to put in session [something_1] => something value to put in session )
知道为什么吗
确保您的文件在会话设置之前不会回显任何内容
如果您将文件保存为UTF,请确保它是不带BOM的UTF
禁用ini文件中的显示错误。尝试设置“显示错误”,错误;
我希望这会有所帮助,我多次遇到这个问题。这需要进行基本调试。会话值是否已保存?我们无法仅从代码中看出这一点,您需要提供更详细的信息请不要弄乱问题的格式。它完全不可读。我们一直在修复它,您正在回滚更改。不要使用`来格式化大型代码块。在每行代码前使用4个缩进空格。你也可以看看这里:对不起,谢谢你让我的帖子更具可读性…1-会话开始在每个文件的顶部,2-每个文件都是UTF-8,3-放在哪里?在哪个文件中,我在select.php下面的header.php中执行了操作,但仍然无法正常工作…有两种类型的UTF-8,请尝试安装notepad++,然后打开其中的文件,在菜单中选择“encoding>UTF-8 without BOM”,由于带有BOM的UTF-8在文件开头添加了一些额外的位,甚至可能被浏览器解释为新行!并尝试查看该页面的源代码,可能会打印一些文本,但它已经设置为UTF-8而没有BOM,并且并没有空格、文本等。。。我认为这是服务器的问题。。。我会试着了解更多关于这个。。。顺便说一句,谢谢。请尝试使用此doctype:,或给我一个链接,我将为您检查它
<ul>
<li><a href="index.php"><em><b><?php echo $lang['txt1'];?></b></em></a></li>
<li><a href="about.php"><em><b><?php echo $lang['txt2'];?></b></em></a></li>
<li><a href="services.php"><em><b><?php echo $lang['txt3'];?></b></em></a></li>
<li><a href="contact.php"><em><b><?php echo $lang['txt4'];?></b></em></a></li>
</ul>
OUTPUT:
Array ( [lang] => lang value to put in session [something_1] => something value to put in session )
Array ( [lang] => new lang value but not set in session [something_1] => something value to put in session )
<?php
session_start();
$lang = "lang value to put in session";
$something = "something value to put in session";
$_SESSION['lang'] = $lang;
$_SESSION['something_1'] = $something;
print_r($_SESSION);
$lang = "new lang value but not set in session";
$something = "new something value but not set in session";
print_r($_SESSION);
Array ( [lang] => lang value to put in session [something_1] => something value to put in session )
Array ( [lang] => new lang value but not set in session [something_1] => something value to put in session )
Array ( [lang] => lang value to put in session [something_1] => something value to put in session )
Array ( [lang] => lang value to put in session [something_1] => something value to put in session )