PHP Session 用法與Sessions入執行個體應用
session 出現頭資訊已經發出的原因與cookie一樣.
在php教程5中,所有php session 的註冊表配置選項都是編程時可配置的,一般情況下,我們是不用修改其配置的.要瞭解php的session註冊表配置選項,請參考手冊的Session 會話處理函數處.
session的儲存資料的時候,是通過系列化$_SESSION數組來存貯,所以有系列化所擁有的問題,可能有特殊字元的值要用base64_encode函數編碼,讀取的時候再用base64_decode解碼
下面是一個簡單的指令碼,你應該在你的PHP代碼開始的地方開始了一個PHP的會話。
session_start(); // start up your PHP session!
?>
這小片的代碼將註冊與伺服器的使用者的會話,讓您開始儲蓄使用者資訊和分配一個UID(獨特的識別號碼該使用者的會話)。
儲存會話變數
當你要儲存在會話使用者資料使用了$ _SESSION關聯陣列。這是你們兩個儲存和檢索會話資料。在以前的PHP版本中還有其他方法來執行此儲存操作,但它已被更新,這是正確的方式去做。
session_start();
$_SESSION['views'] = 1; // store session data
echo "Pageviews = ". $_SESSION['views']; //retrieve data
?>
看個簡單購物車執行個體
session_start();
if(isset($_SESSION['views']))
$_SESSION['views'] = $_SESSION['views']+ 1;
else
$_SESSION['views'] = 1;
echo "views = ". $_SESSION['views'];
?>
session_start();
if(isset($_SESSION['cart']))
unset($_SESSION['cart']);
?>
session_start();
session_destroy();
?>
session使用執行個體
/**
* 效驗session的合法性
*
*/
function sessionVerify() {
if(!isset($_SESSION['user_agent'])){
$_SESSION['user_agent'] = MD5($_SERVER['REMOTE_ADDR']
.$_SERVER['HTTP_USER_AGENT']);
}
/* 如果使用者session ID是偽造,則重新分配session ID */
elseif ($_SESSION['user_agent'] != MD5($_SERVER['REMOTE_ADDR']
. $_SERVER['HTTP_USER_AGENT'])) {
session_regenerate_id();
}
}
/**
* 銷毀session
* 三步完美實現,不可漏
*
*/
function sessionDestroy() {
session_destroy();
setcookie(session_name(),'',time()-3600);
$_SESSION = array();
}
?>
session解決了一個PHP允許你儲存上以供日後使用(即使用者名稱,購物車中的物品等)伺服器的使用者資訊這個問題。不過,本次session的資訊是暫時的,通常會被刪除後,很快使用者已經離開了網站,它使用會話。
重要的是要思考,如果session的臨時儲存是適用於您的網站。如果你需要一個較長期儲存,你需要找到另一種解決方案,像一個MySQL資料庫教程。
session的工作創造一個獨特的識別碼(UID)為每個訪問者,並在此基礎身份證儲存變數。這有助於防止兩個使用者的資料擷取與另一次混亂的時候訪問同一網頁。
註:如果您不與會話編程經驗,不建議您使用在網站上,需要高度安全session,因為有安全性漏洞,需要一些先進的技術,以堵塞。
啟動一個PHP會話
在您可以開始在你的PHP會話儲存使用者資訊,您必須首先啟動了session。當您啟動一個會話,它必須在您的代碼的開頭很之前任何HTML或文本,發送。
http://www.bkjia.com/PHPjc/632000.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632000.htmlTechArticlePHP Session 用法與Sessions入執行個體應用 session 出現頭資訊已經發出的原因與cookie一樣. 在php教程5中,所有php session 的註冊表配置選項都是編程時可...