其他页面无法识别服务器变量

时间:2012-05-23 13:01:39

标签: php apache server-variables

我在login.php文件中有这个代码:

 //save user data 
  $token=$user->getId().'_'.hash('sha256',$user->getUsername().microtime());
  $name='fsusr_'.$user->getUsername();

  //set session and server variables
  $_SESSION[$name]=$token;   //set session variable
  $_SERVER[$name]=$token;    //set server variable

并且在page_init.php中,在登录过程之后,我想检索服务器和会话变量,以便我可以比较它们,并决定下一步该做什么:

我在第8行有这个:

 echo $_SERVER[$name];

事实上,问题是另一页在这一行中向我发送了这个错误:

未定义的索引:第8行的fsusr_smoootk。

当我在login.php中创建一个print_r($ _ SERVER)时,我看到包含$ _SERVER [$ name]变量的数组......但是当在另一个页面中执行相同操作时,我发现它不再包含那个变量。

我知道它没有将服务器变量保存到其他页面,但我不知道为什么?

提前致谢

2 个答案:

答案 0 :(得分:3)

$ _SERVER变量用于服务器信息。您应该将自己的变量分配到$ _SESSION。

http://us.php.net/manual/en/reserved.variables.server.php

答案 1 :(得分:1)

试试这个$_SESSION['name'] = $token

你在会话中保存数据并回显$ _SERVER ......好人!