dsg41888 2011-02-13 17:44
浏览 35

多语言站点适用于localhost,但不适用于Internet

I made a website, with 3 lang on it, and site works fine (localhost) but when I upload it, default lang is EN and whenever I change lang on the web, let's say from EN to FR, page goes on that lang in this case on FR and redirect me on home page and all text on site is on FR, that's ok, but after that, when I try to click on let's say about us, then on it's own change it back to default lang, and show me that page (about us) but on default lang... Here is sample of code how it's look...

This is select.php and I include_once this file on every page...

<?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;

This is lang.en.php...

$lang = array();

// menu
$lang['txt1'] = 'Home';
$lang['txt2'] = 'About Us'; 
$lang['txt3'] = 'Services'; 
$lang['txt4'] = 'Contact';

It's the same for other two languages...

and I simply put in index.php this...

<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>

When is on default lang, I can navigate fine, I can go on any page without problems, but problem is when I try to change site into other language(s), let's say I'm on page www.example.com/about.php and I want to see this page on let's say FR, site will redirect me, on www.example.com/index.php?lang=fr (this is ok) and then I can see FR lang on site but only on home page, but when I try to go on www.example.com/about.php then site put back default lang, in this case EN...

Strange thing is that this script works fine on localhost...
Any idea why?

Update:

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);

PHP shouldn't change the second array

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 )

It should look like this:

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 ) 

Any idea why?

  • 写回答

1条回答 默认 最新

  • doumouyi4039 2011-02-13 18:00
    关注
    • Be sure your files does NOT echo anything before settings the session
    • if your saving files as UTF , be sure it's UTF without BOM
    • disable display_errorsin ini file . try ini_set('display_errors',false);

    i hope this helps , i encountered this problem many times .

    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?