Session是什麼
Session是指有始有終的一系列動作或資訊,比如去看電影從進入影院到走出影院的整個過程可以稱為一個Session。Cookie將資料存放區在用戶端電腦上,而Session將不定量的變數儲存在伺服器端。
每一個使用者連結網站伺服器後便會產生一個Session,所以首先要告訴伺服器使用Session功能來儲存資料。啟用Session功能的方式有兩種:
1、使用session_start()函數啟動會話,其結構形式如下:
session_start()
函數不能帶參數,其傳回值為布爾型。
2、在php.ini中設定參數 session.auto_start,將此參數設為1,即當有串連到伺服器後Session功能將自動啟用。
啟動Session後,在使用Session變數之前首先要註冊變數,之後才能使用,反之不使用某個變數時就要取消註冊。Session_register(變數名)可以註冊一個Session變數;Session_unregister(變數名)可以取消註冊一個Session變數,例如:
代碼如下 |
複製代碼 |
session_start(); /* 啟動session變數 */ session_register('user') /* 註冊user變數 */ session_unregister('user') /* 登出user變數 */ |
調用session變數
php session使用方法:用函數$_SESSION[]可以建立一個函數變數,其格式如下:
代碼如下 |
複製代碼 |
$_SESSION['$string']=$str; |
參數$string是要定義的變數名,$str是變數值。在調用時使用$_SESSION[$string]的格式。
執行個體:
代碼如下 |
複製代碼 |
<?php session_start(); $_SESSION['name']="Jane"; $_SESSION['password']="888888"; echo "使用者名稱是: " .$_SESSION['name'] ."<br>"; echo "密碼是: " .$_SESSION['password'] ."<br>"; ?> |
session的使用
本站前面介紹了session的一些概念以及基本操作,這裡通過執行個體介紹php session使用的方法。
執行個體代碼:
代碼如下 |
複製代碼 |
<?php session_start(); /* 啟動session */ $_SESSION['name']="LIMing"; $_SESSION['password']="888888"; $_SESSION['time']=time(); echo "<a href='session.php' target='_blank'>傳遞session</a><br />" ?> |
session.php代碼:
代碼如下 |
複製代碼 |
<?php session_start(); echo "使用者名稱是:" .$_COOKIE['name'] ."<br>"; echo "密碼是:" .$_SESSION['password'] ."<br>"; echo "訪問時間是:" .date('Y m d H:i:s', $_SESSION['time']) ."<br>"; ?> |
擷取session_id的值
每一個session都有會被指定一個特定的id,用session_id來標識。我們可以通過session_id()函數查看當前session_id的值,其結構形式如下:
session_id()
執行個體:
代碼如下 |
複製代碼 |
<?php session_start(); /* 啟動session */ $id=session_id(); /* 擷取當前session_id */ echo "當前sessionID是: " .$id; ?> |
cookie與session的區別
session和cookie都是重要的會話管理應用,在許多的php開發項目都會用到。它們的作用是能夠給不同的使用者建立不同的值,從而讓不同的使用者返回的結果都不相同。
那麼session cookie區別在哪裡呢?
cookie是利用用戶端來建立,當使用者用瀏覽器開啟網站時就會給使用者建立一個cookie,這個過程是由使用者的電腦執行的,網站的伺服器只是發送一些指令。因此如果使用者禁止了cookie功能,則無法利用cookie來實現相關功能。
session則是利用服務端來建立,整個過程都由伺服器來執行,使用者無權幹預。
在運用時,如果你希望節約伺服器的資源,可以選用cookie來進行會話管理;如果你希望所有的瀏覽者都能使用會話管理,則應該選用session。