會話是存儲信息的方式(in variables)在多個頁面中使用。
不像餅乾,信息不會存儲用戶的計算機上。
什麼是PHP會話?
當你與一個應用程序時,您打開它,做一些更改,然後關閉它。 這很像一個會話。 計算機知道你是誰。 它知道,當你啟動應用程序,當你結束。 但是,在互聯網上有一個問題:Web服務器不知道你是誰,你做什麼,因為HTTP地址不能保持狀態。
Session變量解決在多個頁面中使用此問題,通過存儲用戶信息(eg username, favorite color, etc) 。 默認情況下,會話變量持續到用戶關閉瀏覽器。
所以; Session變量容納約一個單一用戶的信息,並提供給一個應用程序中的所有頁面。
提示:如果你需要一個永久存儲,你可能希望將數據存儲在數據庫中 。
啟動PHP會話
會話啟動與session_start()函數。
會話變量的設置與PHP全局變量:$ _SESSION。
現在,讓我們創建一個名為新頁面"demo_session1.php" 在這個頁面中,我們開始一個新的PHP會話,並設置一些會話變量:
例
<?php
// Start the session
session_start();
?>
<!DOCTYPE
html>
<html>
<body>
<?php
// Set session
variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"]
= "cat";
echo "Session variables are set.";
?>
</body>
</html>
運行示例» Note:該session_start()函數必須是文檔中的第一件事情。 任何HTML標記之前。
獲取PHP會話變量值
接下來,我們創建一個名為另一頁"demo_session2.php" 從這個頁面,我們將進入我們的第一個頁面上設置的會話信息("demo_session1.php")
請注意,會話變量不單獨傳遞給每一個新的頁面,相反,他們是從我們在每一頁的開頭打開會話檢索( session_start()
還要注意,所有的會話變量值存儲在全局$ _SESSION變量:
例
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Echo session variables that were set on previous
page
echo "Favorite color is " . $_SESSION["favcolor"]
. ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"]
. ".";
?>
</body>
</html>
運行示例» 顯示所有的會話變量值的用戶會話另一種方法是運行下面的代碼:
它是如何工作的? 它怎麼知道是我?
大多數會話設置用戶的計算機上看起來是這樣的一個用戶密鑰:765487cf34ert8dede5a562e4f3a7e12。 然後,當會話打開另一個頁面上,它會掃描用戶密鑰的計算機。 如果有匹配,它訪問會話,如果沒有,它開始一個新的會話。
修改PHP會話變量
要改變一個會話變量,只是簡單地覆蓋它:
例
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
//
to change a session variable, just overwrite it
$_SESSION["favcolor"] =
"yellow";
print_r($_SESSION);
?>
</body>
</html>
運行示例» 銷毀PHP會議
要刪除所有的全局會話變量並銷毀會話,使用session_unset()和session_destroy()
例
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
//
remove all session variables
session_unset();
// destroy the
session
session_destroy();
?>
</body>
</html>
運行示例»