1

ログインおよびログアウト システムを構築しましたが、chrome や firefox などの一部のブラウザでは正しく動作しないようです。問題は、セッションの終了時に有効期限が切れるはずの Cookie であっても、ブラウザが Cookie を記憶していることです。誰かがそれに対する解決策を持っていますか?

覚えておく必要があるかどうかを監視する別の Cookie を作成することは有効な解決策ではないことに注意してください。より専門的な方法が必要です。

前もって感謝します!

編集:混乱して申し訳ありません。私はクッキーの設定をまったく解除していません.ブラウザは閉じたときにそれを破棄するはずですが、そうではありません. それが問題だ

4

3 に答える 3

2

有効期限を過去に設定する

// set the expiration date to one hour ago
setcookie ("cookie", "", time() - 3600);

PHPマニュアルのこの例を参照してください。

編集:

ブラウザまたはタブを閉じたときに Cookie を削除するには、javascript onunload を使用できます。

<script>
    window.onunload=function()
    {
        document.cookie = 'cookie =; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    }
</script>

ページのアンロード時に、Cookie の有効期限を過去に設定します。

于 2013-05-29T14:30:25.897 に答える
1

PHP Docが言うように:

0 に設定するか、省略した場合、Cookie はセッションの終了時 (ブラウザーが閉じるとき) に期限切れになります。

これは PHP の考え方ですが、一部のブラウザはそれを行いません。のように負の時間を設定するだけです

setcookie("cookie", "", time() - 10);

そしてそれは動作します。

于 2013-05-29T14:34:47.407 に答える
1

Cookie を削除するには、負の時間を設定する必要があります。

setcookie('cookie', '', time() - 3600);
于 2013-05-29T14:30:10.243 に答える