簡體   English   中英

在會話銷毀后獲取會話變量

[英]getting session variable even after session destroy

我是php的新手。 即使在session_destroy()和session_unset()之后,我也無法理解會話變量的輸出。這是我的簡單測試代碼

`session_start();
 SESSION['name']='sovon';
 session_destroy();
 session_unset($_SESSION['name']);
 echo $_SESSION['name'];

`

輸出是'sovon'。 我的問題是session_destroy()和session_unset()在這里做什么,它們之間有什么區別? 哦! 當我刪除session_destroy()時,變量未被設置。 為什么?

如果您閱讀php 手冊,也許更容易。

session_destroy() 

session_destroy()銷毀與當前會話關聯的所有數據。 它不會取消設置與會話關聯的任何全局變量,也不會取消設置會話cookie。 要再次使用會話變量,必須調用session_start()。

所以如果你想取消里面的數據。 你必須解開它。

unset($_SESSION);

會議未設置......

session_unset()

刪除所有變量並保留session_id。 但是session_unset沒有參數。

你搜索的是什么

unset($_SESSION['name']);

我得到它faisal,session_distroy如果在其他頁面中創建會破壞會話。 如果會話變量在同一頁面上創建,那么它將保留。 最佳做法是在session distroY $_SESSION = NULL;之后使會話變量$_SESSION = NULL;

就像我在注銷時使用的那樣

session_start();
session_distory();
$_SESSION = NULL;
header('Location: Login.php');

我認為這有助於你。

我自己找到了答案。當我將Session_destroy()寫入另一個php文件並回顯該變量然后它不輸出但在同一頁面中輸出。解釋為什么會發生這種情況?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM