PHP 新手入門之session
1.什么是session
session 變量用于存儲關于用戶會話(session)的信息,或者更改用戶會話(session)的設置。Session 變量存儲單一用戶的信息,并且對于應用程序中的所有頁面都是可用的?
2.php session ?變量
您在計算機上操作某個應用程序時,您打開它,做些更改,然后關閉它。這很像一次對話(Session)。計算機知道您是誰。它清楚您在何時打開和關閉應用程序。然而,在因特網上問題出現(xiàn)了:由于 HTTP 地址無法保持狀態(tài),Web 服務器并不知道您是誰以及您做了什么。
PHP session 解決了這個問題,它通過在服務器上存儲用戶信息以便隨后使用(比如用戶名稱、購買商品等)。然而,會話信息是臨時的,在用戶離開網站后將被刪除。如果您需要永久存儲信息,可以把數(shù)據(jù)存儲在數(shù)據(jù)庫中。
Session 的工作機制是:為每個訪客創(chuàng)建一個唯一的 id (UID),并基于這個 UID 來存儲變量。UID 存儲在 cookie 中,或者通過 URL 進行傳導。
3.開啟session
session_start();
<?php session_start(); $_SESSION['name'] = "admin"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>session</title> </head> <body> </body> </html>
如上代碼所示,這樣session就已經被開啟了,當我們想在session中存入數(shù)據(jù)或者取出數(shù)據(jù),首先我們就要開啟session ??
session 開啟之后,存入session 的數(shù)據(jù)是可以被其他頁面調用的
在session 變量中存入數(shù)據(jù)
<?php session_start(); $_SESSION['name'] = "admin"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>session</title> </head> <body> </body> </html>
這樣我們就在$_SESSION['name']這個變量中,存入了一個admin的值
然后輸出session
<?php session_start(); $_SESSION['name'] = "admin"; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>session</title> </head> <body> <?php echo "歡迎您:".$_SESSION['name']."!"; ?> </body> </html>
當我們在另外一個文件中寫入
<?php
????echo "歡迎您:".$_SESSION['name']."!";
?>
也是可以輸出session中name的值
銷毀session
如果您希望刪除某些 session 數(shù)據(jù),可以使用 unset() 或 session_destroy() 函數(shù)。
unset() 函數(shù)用于釋放指定的 session 變量
session_distroy() ?一般用于銷毀session
比如倆個頁面,第一個頁面,我們用到session ???但是沒有關閉,到第二個頁面的時候
<?php
session_distroy();
?>
這樣session 就被清空了
session ??與 ?cookie ??的區(qū)別
1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙
?? 考慮到安全應當使用session。
3、session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能
?? 考慮到減輕服務器性能方面,應當使用COOKIE。
4、單個cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
5、所以個人建議:
?? 將登陸信息等重要信息存放為SESSION
?? 其他信息如果需要保留,可以放在COOKIE中