2012-02-19 7 views
0

誰もサブドメイン間でセッションを維持する方法を知っていましたか?

2つの異なるサブドメインを使用して特定のCookieにアクセスできますが、問題が残ります...サブドメインの$ _SESSION ['test']を他のサブドメインに送信しようとすると、 :

subdomain1.domain.com/trial.php

<?php 
ini_set("session.cookie_domain", ".domain.com"); // allow access to this cookie from any subdomain 
session_start();  // create cookie 
$_SESSION['test'] = "TEST1"; // lets try to send "TEST1" in the other subdomain 
?> 

subdomain2.domain.com/trial.php

<?php 
ini_set("session.cookie_domain", ".domain.com"); 
session_start();  // cookie already set 
print_r($_SESSION); // $_SESSION array is empty 
?> 

おかげで、 milkael

答えて

3

データベースにセッションを保存し、Cookieとして渡します。 PHPには、ドメイン全体(サブドメインを含む)でCookieを利用できるようにするパラメータ(ドメイン)がsetcookie()にあります。

ので、自分のドメインとサブドメインが同じデータベースにアクセスすることを提供する(あるいは、少なくともセッションを保持するデータベースへのアクセスがあります):データベース内

  • 店のセッションID(セッションIDは、すべてのために一意である必要がありますがユーザー)
  • ユーザーが別のサブドメインにアクセスしたときに、同じセッションIDをブラウザのクッキーに保存します(ドメイン間で利用可能)
  • クッキーの値とデータベースの値を比較すると、その人は同じものです。
+0

お返事ありがとうございますが、自分でセッションを作るのが好きではありません。私はPHPで処理させたいと思っています。前のPHPコードをデバッグして、2番目のサブドメインが$ _SESSION ['test']の値を抽出できるようにしますか?ありがとうございました –

+0

* "これは、セッションデータがあなたと他のサブドメインに移動できないという欠点があります。" - http://www.epigroove.com/posts/87/using_php_sessions_across_subdomains – Joseph

+0

http://stackoverflow.com/質問/ 6318492/share-session-over-subdomains-in-php – Joseph

関連する問題