在我的所有网页中,我都会触发下面的函数。
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);
}
}
求求你,我做错了什么?
发布于 2018-08-22 06:42:17
我不知道为什么你必须为cookie和session分别做这件事,你可以一次做完。注销时,如果您无论如何都要销毁cookie和/或会话,则不需要检查是否设置了cookie和/或会话(除非您有为“记住我”功能保存cookie的选项)。
下面是session_unset()
函数页的PHP文档中的注释示例。如果您有疑问,可以随时参考PHP文档。您可以在评论中找到大量的示例和用例。
<?php
session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
?>
https://stackoverflow.com/questions/51957290
复制相似问题