0

我在 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];

事实上,问题在于其他页面在这一行向我发送了这个错误:

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

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

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

提前致谢

4

2 回答 2

3

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

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

于 2012-05-23T13:04:58.973 回答
1

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

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

于 2012-05-23T13:04:33.513 回答