為何使用了session_destroy函數(shù),session_id就沒(méi)了?和課程中的說(shuō)明不一樣
<?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(); 輸出結(jié)果: qrnjdtqn0g83t7t5tc56jkhks3
為何使用了session_destroy函數(shù),session_id就沒(méi)了,和課程中的說(shuō)明不一樣。
2019-03-08
課程原文: session_destroy并不會(huì)立即的銷(xiāo)毀全局變量$_SESSION中的值。
看清楚,是全局變量$_SESSION中的值。
如下
輸出
2020-09-28
慕數(shù)據(jù)的回答更是錯(cuò)上加錯(cuò),甚至連教程的錯(cuò)誤原話都沒(méi)找到?
session_id和全局變量$_SESSION中值的延時(shí)銷(xiāo)毀有關(guān)系?
"如果要?jiǎng)h除所有的session,可以使用session_destroy函數(shù)銷(xiāo)毀當(dāng)前session,【session_destroy會(huì)刪除所有數(shù)據(jù),但是session_id仍然存在?!?看清楚,這句課程就是是錯(cuò)的!
你完全拿不到session_id還能證明session_id存在嗎,你$_SESSION變量再有值,session文件都沒(méi)了,會(huì)話都結(jié)束了。
w3c原話“終結(jié) Session:
如果您希望刪除某些 session 數(shù)據(jù),可以使用 unset() 或 session_destroy() 函數(shù)。
unset() 函數(shù)用于釋放指定的 session 變量:
您也可以通過(guò) session_destroy() 函數(shù)徹底終結(jié) session:
注釋?zhuān)簊ession_destroy() 將重置 session,您將失去所有已存儲(chǔ)的 session 數(shù)據(jù)”
http://www.zixuephp.com/html/phphuihua/20150824_41386.html “session_destroy()結(jié)束當(dāng)前的session”。
教程是搬的這句?https://www.php.net/manual/zh/function.session-destroy.php“為了徹底銷(xiāo)毀會(huì)話,必須同時(shí)重置會(huì)話 ID。 如果是通過(guò) cookie 方式傳送會(huì)話 ID 的,那么同時(shí)也需要 調(diào)用 setcookie() 函數(shù)來(lái) 刪除客戶(hù)端的會(huì)話 cookie”是因?yàn)閟ession_id在cookie存了一份拷貝,才說(shuō)session_destroy沒(méi)法重置cookie里那份session_id的。
https://www.php.net/manual/zh/function.session-id.php這里還說(shuō)了session_id() 返回當(dāng)前會(huì)話ID。 如果當(dāng)前沒(méi)有會(huì)話,則返回空字符串("")
https://www.phpernote.com/php-function/922.html“session_destroy();//這個(gè)作用更徹底,刪除$_SESSION 刪除session文件,和session_id”
2018-09-20
感覺(jué)用了session_destroy()函數(shù),就刪了所有session了
2018-08-25
那應(yīng)該是你的第一個(gè)echo session_id()吧? 代碼是從上往下執(zhí)行的 個(gè)人理解
2018-03-28
在代碼的第6行,你已經(jīng)調(diào)用了unset函數(shù)了,此時(shí)$_SESSION被立刻銷(xiāo)毀。