2012-03-21 6 views
1

多くのサブドメインを使用してPHPでセッション変数を共有したいと思います。サブドメイン間でPHPのセッション変数を共有

  • example.com
  • subdomain1.example.com私は2つのドメイン間で同じセッション変数を使用しようと

:私はその一例があります。私はすでにPHPで多くの関数をテストしましたが、何も動作しません。ここでは、テストに私の方法である:

example.com/page.phpで、私はそのテストがあります。

echo '<pre>'; 
var_dump(session_set_cookie_params(0, '/', '.example.com')); 
session_start(); 
echo "Session ID : ".session_id()."\n"; 
$_SESSION['foo'] = 'bar'; 
print_r($_SESSION); 

そしてsubdomain1.example.com/page.phpのを、私は1つを持っています:

echo '<pre>'; 
session_set_cookie_params(0, '/', '.example.com'); 
session_start(); 
echo "Session ID : ".session_id()."\n"; 
print_r($_SESSION); 

私はセットのように、多くの機能をテストした私は、セッションIDが2つのページ間で同じであることがわかりますが、セッション変数はsubdomain1.example.com/page.php

で読むことは不可能ですsの名前しかし、これ以上の結果はありません。

ありがとうございます。

+4

あなたの質問への回答を促すために、以前の質問に対する回答の一部を受け入れてください:) – F21

答えて

0

これを行うには、セッションデータをクッキーに保存してから、他のドメインにアクセスするときにクッキーを開くしかありません。あなたはここでこれを行う方法を読むことができます:http://www.depiction.net/tutorials/php/cookies-session-variables.php

好奇心で、なぜあなたはこれをしたいですか?あなたはクッキーベースのソリューションを使用しないように、両方のドメインが同じデータベースにアクセスすることができますしたい場合は

0

クッキーに保存できない場合は、共有キャッシュレイヤーを使用できます。これは、MySQLなどのデータベースでも、APC(同じサーバーが提供している場合)を使用することもできます。 memcacheを使用することもできます。 Memcacheベースのセッションは、データベースを使用するよりも高速です。 memcacheのセッションストアの詳細については、ここで見つけることができます:

http://php.net/manual/en/memcached.sessions.php

0

次のコードがテストされている作業、Memcacheのような、または何かコンプレックス(セッション自体以外の)直接クッキーの操作を必要とせず/ DBストレージ。

ini_set('session.cookie_domain', '.sonassi.com'); 
session_name('sonassi'); 
session_start(); 

session_save_pathに両方のドメインからアクセスできることを確認してください。

関連する問題