• 締切済み

SESSION

2つのドメインでセッションを有効にする方法が ありましたら教えて下さい。 例:www.aaa.comでセッションを登録しLocationでwww.bbb.co.jpにとんでもこのセッションを有効にする

みんなの回答

  • hiro_coop
  • ベストアンサー率100% (1/1)
回答No.3

同じサーバというなら、クライアントがCOOKIE で SESSION ID を渡さなくなっているので、GET引数で "http://www.example.com/foo.php?".SID とかしてやればできそうな気もしますが… /tmp/sess_<MD5hash> みたいに保存されて、このハッシュってそのまま SESSION ID だった気がしますし…それならメモリで一時的に確保しているほうもドメイン固有じゃなさそうだなぁと。未検証なんですが…。  それが無理だと、やはりセッションハンドラを書き換えたりして自前実装になりますね。

参考URL:
http://jp2.php.net/manual/ja/function.session-set-save-handler.php
  • lunar16th
  • ベストアンサー率66% (10/15)
回答No.2

セッションを共有する事は不可能だとは思いますが、二つのドメインを両方ともn_thiefさんの管理化にあるならば擬似的に再現する事が可能です。 方法としましては、セッションを使用せずセッションと同じ機能を果たすものをご自身で作成し、それをデータベースに保持するようにします。 WebServerA →          → DBServer WebServerB → データベースにセッションが生きているかどうかを確認するためのKEYをPOSTなりGETなりでやりとりし、二つのサーバーでタイムアウト時間を共有する事が可能です。 一般的にこのやり方は二つのドメインで使うものではなく、複数のWebサーバー・負荷分散装置を使用した時に取る方法なのですが同じようにアレンジできると思います。 実際、このやり方ですとかなり面倒だとは思いますが作成されるのでしたらがんばってトライして見て下さい。 以上、ご参考まで。

n_thief
質問者

お礼

回答ありがとうございます。 実は、サーバーは同じところで ログインするとSSLでまったく違うドメインになって しまうので何か良い方法がないかと思いまして、 やはり、擬似的に作るしかないんですね。

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

session値って、サーバー側に保存されるものなので、 できたとしても、意味無いと思います

関連するQ&A

専門家に質問してみよう