2

php.netおよびいくつかの SO の質問 ( Cookie の削除)でアドバイスされているように、Cookie を削除します。

setcookie('id', '', time() - 3600, "/", "", false, true);

この解決策を分析すると、サーバーとブラウザのタイムゾーンの差が 1 時間以上ある場合 (移動中のユーザー、異なるタイムゾーン、コンピューターの時計の問題、OS の時計の問題など) は機能しないように見えます。

そのため、さらに過去の日付を設定する予定です。

setcookie('id', '', time() - 86400, "/", "", false, true);

IE が過去の日付の Cookie をスキップできることを確認しました。

どの値が推奨されますか?

ユーザーがコンピュータの時刻設定に問題を抱えている場合 (設定エラーまたは時計の電池切れ) はどうですか? (これが例外的であることは承知していますが、これらの人々は常に私たちのWeb サイトについて不満を漏らし、サポート チケットを集めることになります (これには費用がかかります)。)

注 1: Theolodis が提案したように、次のように Cookie を連鎖させることができます (変更):

setcookie('id', '', time() - 3600,  "/", "", false, true);
setcookie('id', '', time() - 90000, "/", "", false, true); #25 hours
setcookie('id', '', 1,              "/", "", false, true);

すべてのケースをカバーするのは良い考えですか?

注 2: サーバー側での解決策を探しています (可能であれば)。

4

2 に答える 2