5

現在、PHP Web アプリのセッション Cookie ドメインは に設定されていexample.comます。に変更したいと思い.example.comます。新しい訪問者のために、ini_set('session.cookie_domain', '.example.com')作品。この変更が行われる前に既に PHPSESSID Cookie を持っている訪問者の場合、ドメインは古い値のままです。現在のユーザーに Cookie の削除を求めることなく、セッション Cookie のドメインを変更するにはどうすればよいですか?

  • セキュリティ上の理由から HTTPOnly であるため、JavaScript を使用して Cookie を更新することはできません。
  • サーバー上のセッションを削除しても、Cookie 全体がリセットされるわけではなく、Cookie の値が更新されるだけです (ドメインは同じままです)。
  • 最新のブラウザーは再起動後もセッションを保持するため、ブラウザー セッションの終了時に Cookie の有効期限が切れるように設定されていても、ブラウザー セッションは実質的に終了しません。

私が思いつく唯一の可能性は、過去に期限切れになるように Cookie を設定し、リダイレクトして新しい Cookie を取得することです。しかし、Cookie ドメインが正しく設定されていない訪問者を特定することはできません。

4

1 に答える 1

3

session_name()セッションを開始する前に、新しいを設定します。そうすれば、Cookie の名前が変更され、古い Cookie は無視されます。新しい Cookie のみが送信され、セッションで機能します。

于 2013-07-08T15:52:26.170 に答える