[英]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.