[PHP-users 10487] Re: リンクを使ってもセッション変数がリンク先ページに渡らない

ITO Akihiro php-users@php.gr.jp
Thu, 03 Oct 2002 00:05:53 +0900


D-TV伊藤です.

> で試してみたところ、なんとか表示は出来ました。ただ、URL欄に
> セッションIDのような数値郡
> <http://hogehoge.com/bbs.php?PHPSESSID=9afbdf55490d8eaea7966ebed271d851>
> のようなものが付加されますよね。?PHPSESSID以下。
> 
> 
> この状態でお気に入りとかに入れられた場合はやはり直リンクのようなことが可能に
> なってしまうと思うのです。。
>

session.auto_start
を ON にすれば,SID は不要ですし,ジャンプした後の画面でのURLには,
セッションIDは表示されないと思います.

あと,
session.cache_expire
を使い勝手の悪くならない程度に,短めに設定すればよいかと.

> できれば確実にIndex.phpを介しないとbbs.phpはセッションエラーとしたいのです。
>
1. 1画面目で,セッション変数に,値をセット.
   session_start();
   $_SESSION[test_session] = 1234;
   (ちなみに,$_SESSION は関数ではなくて,グローバル変数です.)

2. 2画面目をコールする際,URLのパラメータとして,同じ値をセット.
   <a href="./page2.php?param_test_session=1234">NEXT</a>

3. 2画面目の最初で,セッション変数の値とURLパラメータの値を比較
   session_start();
   if($_SESSION[test_session] == $param_test_session) {
     echo "OK";
   }

こうしておけば,途中ページから入る場合は,param_test_sessionが渡らな
いので,判定できます.
--
ITO Akihiro / Nagoya Japan
akit@d-tv.co.jp
http://www.d-tv.co.jp/
http://www.d-tv.co.jp/~akit/seven/