在页面上发出持久的会话变量

时间:2014-05-04 12:14:51

标签: php session session-variables

首先介绍一下我的设置背景:

  • 我设置了本地域名,projects.lumesse.com。
  • 在IIS 7上运行的PHP版本为5.4.16。
  • 在Chrome中测试(最新稳定版本)。

问题如下:

我有一个名为'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(默认值)。

我很欣赏任何关于我所遗漏的想法。

1 个答案:

答案 0 :(得分:0)

找到了答案 - 我习惯于在经典的ASP和.net中编码,它不需要一行来初始化会话。解决方案是将session_start()放入主包含文件中。