2

同じサーバーでホストされている 2 つのアプリケーション A と B があります。実際、B は A のサブディレクトリに格納された A のサブアプリケーションです。

マスター (A) アプリケーションはデフォルトの php セッション実装を使用しますが、B はデータベースにセッションを実装します。参考までに。

新しいブラウザーでアプリケーション B にアクセスするとき、または A にアクセスする前に、Cookie が適切に設定されています。

ただし、最初に A にアクセスすると、PHPSESSID Cookie が設定されます。B にアクセスすると、B の Cookie が設定されません。

Aによって設定されたPHPSESSID CookieがBにそのCookieを設定させない理由については、私にはわかりません。逆は当てはまりません。

4

2 に答える 2

1

Cookie はデフォルトで完全なドメインに設定されているため、競合しています/。そのため、2 つのアプリケーションが両方ともセッションを開始しようとすると優先されます。を使用session_set_cookie_params()してデフォルトのパスを上書きし、競合を取り除くことができます。ブラウザの「古い」Cookie は手動で削除する必要がありますが、そうしないと有効期限が切れるまで競合し続けるためです。

于 2013-05-02T16:42:38.507 に答える