だから私は同じセッションを共有するいくつかのサブドメインを持っていますか?
サブドメイン1(ユーザーパネル、編集情報など):
$_SESSION['user_id'] = 4;
サブドメイン2(ユーザープロファイルを参照):
$user_id = 8;
サブドメイン1に戻る:
echo $_SESSION['user_id']; // output: 8!
$_SESSION['user_id']ID 8でどのように設定されますか?
何か新しいことを学びたいです^_^
あなたはただ次のようなことをします:
$_SESSION['sub_domain1]['user_id'] = 8;
$_SESSION['sub_domain2]['user_id'] = 4;
これは、ZendFrameworkのnamespageでセッションを処理するためのソリューションです。class:My_Sessionwith__contruct($namespace)を作成してから、method:に書き込みget、setkeyから値を取得できます。
更新: http:
//framework.zend.com/manual/1.12/en/zend.session.basic_usage.html
コードからは完全には明らかではありませんが($_SESSION['user_id'] = 8;2番目のコードスニペットを意味しますか?)、Cookieを共有し、同じセッションIDを持つ(そしてセッションにCookieを使用する)2つのサブドメインがある場合は、2つの間のセッションを変更できます。
これは、セッション関連の処理を行う前に(または何かを出力する前に)セッションCookieドメインを設定するか、php.iniでCookieドメインの構成オプションを設定することで可能になります。
URLなどの他の方法でセッションIDを渡し、サブドメイン間で共有している場合も、これが発生する可能性があります。
あなたが説明する症状は、 register_globalsがあなたのサイトのいくつか(またはすべて)で有効になっているのではないかと私に思わせます。配列内のアイテム$_SESSIONがグローバル変数になると、この種の問題が発生します。