[PHP-users 7558] Re: セッション& Header 関数で値が引き継がれない

しょうなり [ml] php-users@php.gr.jp
Fri, 17 May 2002 18:04:11 +0900


しょうなりです。

tmr さんは書きました:
>Header("Location:****.php")
>に関してのみ、セッションが引き継がれずに新しいセッションが作られてしまいます。
>この現象は、どのphpファイルに書いても同じでした。
>
>> また、明示的にセッションIDを渡す処理を書くとどうでしょうか?
>> Header("Location: confirm.php?".SID);
>
>これで、解決は出来ました!!
>アドレスにセッションが出てしまうのはちょっと気持ち悪いですが…。
>でも、以前は、このような事しなくても、動いていたはずなんです。
>すごく不可解な現象です。

僕は COOKIE を切っているブラウザのために、
header() でジャンプするときは必ず SID を付けるようにしているのですが、
COOKIEでちゃんとSESSIONのIDが渡っているときは、SIDは ""(空) になっている
はずです。

もし --enable-trans-sid を付けてコンパイルされたPHPなら確認できると
思いますが、FORMタグのすぐ下に hidden属性で PHPSESSID というエレメントが
できていませんか? その場合 COOKIEでちゃんとSESSIONのIDが渡ってません。

予想では php.ini の設定が悪いか、ブラウザの設定で COOKIEが切れて
しまっているかだと思います。(たぶん後者かな…)

ちなみに中川さんが指摘されている http:// から書くほうが本来正しい書式です。
これを機会にそちらも対処されるとよいかと思います。

-- 
print <<<SIG
	しょうなり@信州 肥田昌也
	Email:     shounari@webappli.jp
SIG;