簡體   English   中英

PHP-Cookie和會話不會永久刪除

[英]PHP - Cookie and Session Doesn't get Deleted Permanently

我在所有網頁中觸發以下功能。

function refresh_user_auth() {

    if (isset($_COOKIE["UserID"])) {

        $_SESSION["UserIDS"] = $_COOKIE["UserID"];
        setcookie("UserID", $_COOKIE["UserID"], time() + (86400 * 30), "/");

    }
    elseif (isset($_SESSION["UserIDS"])) {

        $_SESSION["UserIDS"] = $_SESSION["UserIDS"];
        setcookie("UserID", $_SESSION["UserIDS"], time() + (86400 * 30), "/");

    }

}

我使用下面的功能注銷,但是當我訪問網站上的其他網頁時,似乎沒有注銷我。

function unset_user_auth() {

    if (isset($_COOKIE["UserID"])) {

        unset($_COOKIE['UserID']);
        $_COOKIE = array();
        setcookie('UserID', '', time() - 36000);

    }

    if (isset($_SESSION["UserIDS"])) {

        unset($_SESSION['UserIDS']);
        $_SESSION = array();
        session_destroy();
        setcookie('UserIDS', '', time() - 36000);

    }

}

拜托,我在做什么錯?

我不確定為什么要分別針對Cookie和會話執行此操作,您可以一次執行所有操作。 注銷時,無論如何都要銷毀兩者,不需要檢查是否設置了cookie和/或設置了會話(除非您可以為“記住我”功能選擇保存cookie)。

這是來自PHP文檔中session_unset()函數頁面的注釋示例。 如有疑問,您總是可以參考PHP文檔。 您會在注釋中找到足夠的示例和用例。

<?php
    session_start();
    session_unset();
    session_destroy();
    session_write_close();
    setcookie(session_name(),'',0,'/');
    session_regenerate_id(true);
?> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM