[PHP-users 8112] Re: $_POST 変数を初期化するには

しょうなり [ml] php-users@php.gr.jp
Tue, 18 Jun 2002 15:20:59 +0900


しょうなりです。
石原さん、解決されてなによりです。

セッションIDについて、僕もしっかり理解していないので
言葉足らずなところがあり、迷わせてしまいましたね。ごめんなさい。

ところですでに表題と違う内容になりますが…
(別スレッドのほうがよかったかな?)

一部僕の理解と違うところがありましたので、教えていただけ
ないでしょうか?

ishihara さんは書きました:
>石原です。
>
>(略)
>> また、登録後の画面で登録した情報が必要ならば、セッション機能を使うと
>> いいでしょう。
>> その場合は確実にセッションIDが渡るようにする工夫が必要です。
>> このスレッドが参考になるのでは?
>> http://ns1.php.gr.jp/pipermail/php-users/2002-May/007495.html
>
>(略)
>しかし、セッションを使っていたので、SIDを渡さなければと必死にやっていたので
>すが
>うまくできませんでした。
>そこで、PHPマニュアルのセッション部分を見ていたら
>
>PHPのコンパイル時に --enable-trans-sidを指定した場合には、 <?php echo SID?>
>は必要ありません。
>注意 相対URLでないURLは、外部サイトを指していると仮定されSIDが追加 されませ
>ん。これは、SIDを異なったサーバにもらすことはセキュリティ 上のリスクとなるた
>めです
>
>このような記述があったので、SIDは必要ないんだなと思いやってみたら
>やろうとしていたことがすべてクリアされました。


定数SIDはセッションIDがクッキーでしっかり渡っていたとき
SIDは空になります。
echo SID として何も出力されない場合は安心というわけです。

しかしクッキーに対応していないブラウザや、クッキーを切っている場合には、
クッキー以外の方法でセッションIDを渡す方法が必要になります。

--enable-trans-sid でコンパイルしてある場合、自動的にセッションIDの
情報が渡るよう、<a>タグや<form>タグに仕掛けが施されます。
しかし、header() による移動や、JavaScript の
self.location = "jumpto.html";
といった方法での移動には、何も仕掛けが施されません。

クッキーでセッションIDが渡っている場合は何も問題がないのですが、
クッキーが使えない場合に、header()関数とJavaScriptによる移動には
問題があるわけです。

「確実にセッションIDが渡るようにする工夫が必要」と書いたのは
このあたりが理由です。
(この文章を書くまでは僕の中でももやもやとしていたもので、
 参考になるとしたスレッドは、本当には適切じゃなかったかも…。
 (いいわけモード (^^;)
 すみませんでした)


そこでお聞きしたいのは、SIDを指定していたときはうまくいかず、
>このような記述があったので、SIDは必要ないんだなと思いやってみたら
>やろうとしていたことがすべてクリアされました。
というのは、どのような感じでクリアされたのでしょうか?

SIDを渡すよう指定していても、
クッキーでセッションIDが渡っているので出力はされていないだけで、
プログラムにさせたいことは失敗してなかったのでは、と思うのですが…。

細かいところですが、よろしくお願いします。

-- 
しょうなり@信州 肥田昌也
Email:     shounari@webappli.jp
HomePage:  http://www.webappli.jp/
	=> JSlayout プレビュー版(見〜る〜だ〜け〜)