首先介绍一下我的设置背景:
问题如下:
我有一个名为'getVariable'的函数,如下所示:
function getVariable($name, $default = "") {
if(isset($_POST[$name])) return $_POST[$name];
if(isset($_GET[$name])) return $_GET[$name];
if(isset($_SESSION[$name])) return $_SESSION[$name];
return $default;
}
逐行浏览这个函数,如果它存在则返回post变量,后跟get变量,然后是session变量,后跟默认值(如果没有其他的话)。
在另一个include中,包含在函数include之后,我有以下几行:
$_SESSION["Language"] = getVariable("Language", "FR");
如果我放的话,这可以正常工作吗?语言= DE - 网站按照预期显示德语。但是,从上面的一行开始,如果我剥离查询字符串,我希望语言能够保持不变。
第一次点击此页面时,使用?Language = DE,它应该返回get变量。上面的行然后设置会话变量。因此,在此之后对此函数的任何调用都将返回会话变量,对吗?
在没有语言参数的情况下,即使我事先设置了语言,它实际上是返回FR(默认值)。
我很欣赏任何关于我所遗漏的想法。
答案 0 :(得分:0)
找到了答案 - 我习惯于在经典的ASP和.net中编码,它不需要一行来初始化会话。解决方案是将session_start()
放入主包含文件中。