【发布时间】:2016-06-17 03:15:20
【问题描述】:
这是我需要做的: 删除所有会话 cookie 并销毁服务器上的会话。 从浏览器中删除会话 cookie。
<?php
session_start();
$name = session_name();
$expire = strtotime('-1 year');
$params = session_get_cookie_params();
$path = $params['path'];
$domain = $params['domain'];
$secure = $params['secure'];
$httponly = $params['httponly'];
setcookie($name, '', $expire, $path, $domain, $secure, $httponly);
unset($_SESSION["course_code"]);
unset($_SESSION["course_name"]);
unset($_SESSION["publisher"]);
session_unset();
session_destroy();
?>
这是否正确地完成了需要做的事情?
【问题讨论】:
-
如果你想取消设置所有的值,你可以运行
session_destroy()。它将取消设置所有值并销毁会话。 -
但是
$_SESSION数组在session_destroy()之后仍然可以在同一页面中工作。然后你可以简单地运行$_SESSION = array()来重置它的内容。 -
可能的重复删除请求 - 它不包括会话破坏,只有 cookie。在这里,作者要求提供会话和 cookie
-
@Phiter :正如下面正确引用手册中的答案,
session_destroy()确实 NOT 删除会话 cookie。