为了账号安全,请及时绑定邮箱和手机立即绑定

为何使用了session_destroy函数,session_id就没了?和课程中的说明不一样

<?php
session_start();
$_SESSION['name'] = 'jobs';
echo session_id();
//在这里删除name的session值
unset($_SESSION['name']);
if (isset($_SESSION['name'])) {
    echo $_SESSION['name'];
}
session_destroy();
echo session_id();


输出结果:
qrnjdtqn0g83t7t5tc56jkhks3

为何使用了session_destroy函数,session_id就没了,和课程中的说明不一样。

正在回答

5 回答

课程原文: session_destroy并不会立即的销毁全局变量$_SESSION中的值。

看清楚,是全局变量$_SESSION中的值。

如下

<?php
session_start();
$_SESSION['name'] = 'jobs';
session_destroy();
var_dump($_SESSION);

输出

array(1) { ["name"]=> string(4) "jobs" }


0 回复 有任何疑惑可以回复我~
#1

独傲的野狼

看清楚,提问的是session_id,答非所问还能变最佳?session_id就是会被销毁,就没问全局变量
2020-09-29 回复 有任何疑惑可以回复我~
#2

独傲的野狼

【session_destroy会删除所有数据,但是session_id仍然存在。】原文就是错的
2020-09-29 回复 有任何疑惑可以回复我~

慕数据的回答更是错上加错,甚至连教程的错误原话都没找到?

session_id和全局变量$_SESSION中值的延时销毁有关系?

"如果要删除所有的session,可以使用session_destroy函数销毁当前session,【session_destroy会删除所有数据,但是session_id仍然存在。】"看清楚,这句课程就是是错的!

你完全拿不到session_id还能证明session_id存在吗,你$_SESSION变量再有值,session文件都没了,会话都结束了。


w3c原话“终结 Session:

如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。

unset() 函数用于释放指定的 session 变量:

您也可以通过 session_destroy() 函数彻底终结 session:

注释:session_destroy() 将重置 session,您将失去所有已存储的 session 数据”


http://www.zixuephp.com/html/phphuihua/20150824_41386.html “session_destroy()结束当前的session”。


教程是搬的这句?https://www.php.net/manual/zh/function.session-destroy.php“为了彻底销毁会话,必须同时重置会话 ID。 如果是通过 cookie 方式传送会话 ID 的,那么同时也需要 调用 setcookie() 函数来 删除客户端的会话 cookie”是因为session_id在cookie存了一份拷贝,才说session_destroy没法重置cookie里那份session_id的。

https://www.php.net/manual/zh/function.session-id.php这里还说了session_id() 返回当前会话ID。 如果当前没有会话,则返回空字符串("")


https://www.phpernote.com/php-function/922.html“session_destroy();//这个作用更彻底,删除$_SESSION 删除session文件,和session_id”


0 回复 有任何疑惑可以回复我~

感觉用了session_destroy()函数,就删了所有session了


0 回复 有任何疑惑可以回复我~

那应该是你的第一个echo session_id()吧  代码是从上往下执行的 个人理解

0 回复 有任何疑惑可以回复我~

在代码的第6行,你已经调用了unset函数了,此时$_SESSION被立刻销毁。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为何使用了session_destroy函数,session_id就没了?和课程中的说明不一样

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信