2007.11.29 Thu

Cookieが使えない場合のSessionの使用方法

Sessionの使えないブラウザでアクセスしてくる端末に対して、Sessionを使用するには session.use_trans_sid を有効にしてあげましょう。

URLに自動的に

index.php?ssid=xxxxxxxxxxxxxxxxxxxxx

といったSessionIDをつけてくれます。

# vi /etc/php.ini
session.use_trans_sid = 0

session.use_trans_sid = 1

さてここまではごくごく一般的なSessionの持ち回りの話ですが、本日大きなカン違いに気づかされました。

今まで全てのアドレス、フォームに自動でSessionIDをつけてくれるものだと思っていたのですが、

session.use_trans_sid が有効な場合、相対URIは自動的にセッションIDを含むように変換されます。

という仕様をしりませんでした。

よく考えてみればそりゃそうですよね、外部リンクにもセッションをつけてしまうことになるので、それはそれで大問題です。

つまり絶対パスで記述しているアドレスにはSessionIDがつきません。
このおかげで全てのパスをチェックするはめになりました・・・

参考サイト

システム構築に関する覚書トップページへ