php session怎么使用?
PHP Session 概述
session 是一種客戶與網(wǎng)站(服務(wù)器)更為安全的對(duì)話方式。一旦開啟了 session 會(huì)話,便可以在網(wǎng)站的任何頁面使用(保持)這個(gè)會(huì)話,從而讓訪問者與網(wǎng)站之間建立了一種“對(duì)話”機(jī)制。
常見的網(wǎng)上購物車,就是一個(gè)session會(huì)話的典型應(yīng)用。我們在預(yù)定商品的時(shí)候,將選擇好的商品放入購物車,實(shí)際就是開啟一個(gè)商品的session會(huì)話。如果對(duì)選擇的商品下了訂單,則會(huì)將對(duì)應(yīng)信息寫入數(shù)據(jù)庫;如果最終沒有下訂單,在用戶關(guān)閉瀏覽器或退出登陸的時(shí)候,則會(huì)關(guān)閉session會(huì)話,選擇的商品隨即失效。
session 會(huì)話會(huì)為每一個(gè)開啟了 session 會(huì)話的訪問者建立一個(gè)唯一的會(huì)話 ID ,用于識(shí)別用戶。該會(huì)話 ID 可能存儲(chǔ)于用戶電腦的 cookie 內(nèi),也可能通過 URL 來傳遞。而對(duì)應(yīng)的具體 session 值會(huì)存儲(chǔ)于服務(wù)器端,這也是與 cookie 的主要區(qū)別,并且安全性相對(duì)較高。
推薦:《PHP教程》
創(chuàng)建 session
要?jiǎng)?chuàng)建 session ,必須先使用 session_start() 函數(shù)開啟一個(gè) session 會(huì)話,系統(tǒng)會(huì)分配一個(gè)會(huì)話 ID:
<?php session_start(); ?>
使用 session_register() 函數(shù)注冊一個(gè) session 變量,成功返回 TRUE ,否則返回 FALSE 。
語法:
bool session_register( mixed name [, mixed ...] )
使用 session_register() 函數(shù)可以在目前會(huì)話下注冊一個(gè)或多個(gè)全局 session 變量。
例子:
<?php session_start(); $username = "xiaoli"; session_register("username"); ?>
在該例子中,我們向 session 注冊了一個(gè)名為 username 的變量,其值為 xiaoli 。
讀取 session
PHP 內(nèi)置的 $_SESSION 變量可以很方便的訪問設(shè)置的 session 變量。
例子:
<?php session_start(); echo "登記的用戶名為:".$_SESSION["username"]; //輸出 登記的用戶名為:xiaoli ?>
銷毀 session
可以通過 session_unregister() 函數(shù)來注銷單個(gè) session 變量或使用 session_unset() 來注銷整個(gè) session 會(huì)話。
例子:
<?php session_start(); session_unregister("username"); //注銷 session 變量 session_unset(); //注銷 session 會(huì)話 ?>
另一種方式
可以通過直接添加 $_SESSION 數(shù)組成員的方式注冊 session 變量:
<?php session_start(); $_SESSION["username"] = "xiaoli"; ?>
如果要注銷這種方式注冊的 session 變量,需要使用 unset() 函數(shù):
<?php session_start(); unset($_SESSION["username"]); ?>
讀取 session 變量與銷毀 session 會(huì)話則同前面的方式相同。
提示
不可使用 unset() 來銷毀 session 會(huì)話。