• ベストアンサー

PHPでのセッション管理について

こんにちは。 PHP初心者の者ですがよろしくお願いします。 現在、ログイン時にセッションを登録し、 メイン画面を表示している部分でセッションを 取得したいのですがうまく取得できません。 メイン画面は、フレームで2つに分割してあります。 ご協力お願いします。 ソースの一部 【a.php】 // セッション名の指定 session_name('my_session'); // ページキャッシュ session_cache_limiter('nocache'); // 情報の保存期間(30分) session_cache_expire(30); //セッション開始 session_start(); $_SESSION["id"]=$_POST["id"]; $_SESSION["pw"]=$_POST["pw"]; $_SESSION["user_cd"]=$user_cd; $_SESSION["syain_name"]=$syain_name; $sid = session_id(); //接続先指定 header("Location: http://".$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"])."/frame.php?PHPSESSID=$sid"); ?> 【frame.php】 <frameset rows="*" cols="151,*" framespacing="0" frameborder="1" border="0"> <frame src="menu.php" name="leftFrame" scrolling="NO" noresize> <frame src="main.php" name="mainFrame"> </frameset> 【menu.php】 <?php session_start(); $id = $_SESSION["id"]; $user_cd = $_SESSION["user_cd"]; $syain_name = $_SESSION["syain_name"]; print $syain_name."<br>"; //←何も表示されない ?>

質問者が選んだベストアンサー

  • ベストアンサー
  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.2

menu.php の session_start() の前に session_name() の設定が必要だと思います。 session_name('my_session'); session_start();

morimori7
質問者

お礼

ありがとうございます! session_name() を追加したところ取得できました 。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 a.phpにて $_SESSION["syain_name"]=$syain_name; として登録していますが、$syain_nameに値が代入されていないようですが? (省略して抜けているなら申し訳ございません) 他の $id = $_SESSION["id"]; $user_cd = $_SESSION["user_cd"]; に関して取得できているのであれば、a.phpの$syain_nameに何も値が入っていないのが原因だと思います。

morimori7
質問者

お礼

ありがとうございます!解決できました。