我在开发机器上使用php5和apache2。生产服务器显然是相似的。php会话变量丢失
我有一个创建一个会话变量脚本set_language.php根据所选择的语言:
<?php
session_start();
$back = $_SERVER['HTTP_REFERER'];
if (isset($_GET['lang'])) {
if ($_GET['lang'] == 'fr')
$_SESSION['lang'] = 'fr';
else if ($_GET['lang'] == 'en')
$_SESSION['lang'] = 'en';
}
header("Location: $back") ;
exit();
?>
然后我举出以下的所有网页上的代码:
session_start();
if(isset($_SESSION['lang']) && $_SESSION['lang'] == 'en') {
require('lang_en.php');
}
else if(isset($_SESSION['lang']) && $_SESSION['lang'] == 'fr') {
require('lang_fr.php');
}
比我能得到语言相关变量与:
echo $lang[sometexttotranslate];
在开发服务器上它的工作方式与预期一样编辑。我点击链接来设置语言和我的会话变量包含LANG = EN或FR
在生产服务器上:
$ _SESSION [ '郎'] = DN或博士(应该是EN或FR)
回声$ LANG [sometexttotranslate] = d(应该是翻译的文字)
任何想法,在 “d” 的从何而来?
这不是重定向/头/ session_start()问题。
的print_r($ _ SESSION)上第一负载:
英语链路(set_lang上的点击后阵列([郎] => FR)
的print_r($ _ SESSION)。以上PHP):
阵列([郎] => DN)
的print_r($ _ SESSION)AFTE法国链路上RA单击(上述set_lang.php):
阵列
的print_r($ _ SESSION)登录后([郎] => DR):
阵列([郎] =>博士[有效] => 1 [伪] => GYC [UID] => 3)
嗯...炒位... –
@Ignacio我不知道在这个问题的背景是什么,但我完全同意。油炸松脆的零食是美味的,应该是每种美食的基础。 –
print_r会话显示什么,也许会比较会话ID。 – Melsi