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

実際、問題は、他のページがこの行でこのエラーを送信することです。

未定義のインデックス:8行目の...のfsusr_smoootk。

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 に答える