亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為何使用了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仍然存在?!吭木褪清e的
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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號