ホームページ >バックエンド開発 >PHPチュートリアル >同じ名前でパスが異なる Cookie
プロジェクトでは、複数の COOKIE を使用してユーザーのステータスを共同で決定します
背景は次のとおりです
ユーザー ID ユーザーコード ユーザー名
3 つの COOKIE がすべて存在する場合、セッションが存在するかどうかを判断します。それ以外の場合は、Cookie を削除し、セッションが存在するかどうかを確認します。
最初は JS を使用して COOKIE を生成していましたが、その後、別の理由で PHP を使用して COOKIE を生成することにしました
テスト中に、ログインとホームページの間に無限ループがあることがわかりました。 COOKIE の状況では、テストしたときにプロジェクトがサブディレクトリで実行されていたため、JS によって生成された COOKIE がまだ存在していることがわかりました。実験と Baidu の後、同じ COOKIE が複数あることがわかりました。名前と別のパス
ページがルート ディレクトリにある場合は、ディレクトリの下にあるものを取得します
ページがサブディレクトリにある場合は、サブディレクトリの下にあるものを取得します
http://jinnianshilongnian.iteye.com/blog/ 1656534 ここで学習してください
java.net.HttpURLConnection のツール/フレームワークを使用します。同じパスに同じ名前の Cookie が複数ある場合、最初の Cookie が取得されます。
Apache HttpClient を使用して、最後のものを取得するのと同じです。 1つ。
つまり、最新の COOKIE が取得されることになります
ただし、IE と Google Chrome を使ってテストした結果は
サブディレクトリ配下のページは、PATH がカレントディレクトリの COOKIE の順で取得されます上のディレクトリを取得すれば時間が経っても戻ります。最新の COOKIE を取得する方法はありません
そして、私のプロジェクトのロジックによれば、PHP はどのディレクトリの COOKIE を取得しているのかを知ることができず、この COOKIE を削除することもできず、無限ループが続くことになります。 。 。 。解決する
ディスカッションに返信する (解決策)
対照的に、IE では /a の下の Cookie (アクション) を読み取る場合、/a の下の Cookie が空であっても、IE は親 Cookie を読み取ります。これは、親パス Cookie を変更することと同じです。サブパス Cookie と一緒に読み取られます。ただし、このパス Cookie が最初に読み取られます。
したがって、Cookie を使用する場合は、サーバーが Cookie を設定するようにしてください。