0

このコードだけのページがあります:

<?php
session_start();
echo session_id();
?>

ローカルホストで実行しています。IEでは、ページが読み込まれるたびにセッションIDがリセットされます(つまり、セッションがリセットされると、古いセッション情報がすべて失われます)。他のブラウザでは問題なく動作し、更新時にセッションIDは変更されません。

これは、ブラウザモードIE7、IE8、およびIE9(実際のブラウザ= IE9)で発生します。「すべてのCookieを受け入れる」にIEプライバシー(Cookie)設定があります。しかし、開発者ツールの「キャッシュ->Cookie情報の表示」には何も表示されません。すべてのセッションCookieをクリアしても、ブラウザのキャッシュをクリアすることはできません。ただし、PHPセッションストレージディレクトリでは、更新のたびに新しいセッションファイルが作成されます。

phpセッション設定:

session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path D:\webserver\environment\temp\sessions D:\webserver\environment\temp\sessions
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies On On
session.use_trans_sid 0 0

奇妙なことに、これはIEでのみ発生し、他のブラウザはなく、IEは正しく構成されているようです...

ヒントをありがとう!

4

1 に答える 1

0

「更新」を押すと、キャッシュをクリアした場合でも、通常は以前と同じリクエストが送信されます。

IEを完全に閉じます。コントロールパネルに移動し、そこから「インターネットオプション」を開いてCookieを削除します。確実にしたい場合は、キャッシュもクリアしてください。次に、IEを開いて、もう一度実行します。

于 2013-02-17T20:41:55.613 に答える