cookie
// 添加cookie
setcookie(COOKIE名,COOKIE值);
// 修改cookie
setcookie(COOKIE名,COOKIE值);
// 刪除cookie,實際是將cookie設置為空即可
setcookie(COOKIE名,'');
// 獲取cookie
var_dump($_COOKIE);
// 完整版添加cookie
setcookie(COOKIE名,COOKIE值,過期時間,有效路徑,有效域名,是否安全傳輸,httponly);
setcookie(COOKIE名,COOKIE值,time()+1800,'/','www.baidu.com',false,true);
COOKIE參數(shù)說明
- 有效期:默認情況一個會話周期為從新增該條COOKIE到瀏覽器關閉為止
- 有效路徑:默認情況表示當前程序所在目錄及其子目錄有效
- 有效域名:默認情況表示當前域名及其子域名有效
- 是否安全傳輸:默認情況表示http或https下都有效呀闻,如果將值設置為true,則表示只有在https下才有效
- httponly:如果設置為true,則表示只允許原程序腳本代碼進行操作
COOKIE技術的局限性
- COOKIE數(shù)據(jù)保存在瀏覽器端(用戶機器上),不可控因素高蝗敢,安全性相對比較低
- 每次請求都會攜帶所有的COOKIE數(shù)據(jù)语泽,如果數(shù)據(jù)量大,將會占用大量的帶寬考赛,降低網(wǎng)站加載效率
session
// 開啟session
session_start();
// 添加和修改session
$_SESSION['session名'] = 'session值';
// 刪除session
unset( $_SESSION['session名'] );
// 查看session
var_dump( $_SESSION );
銷毀SESSION數(shù)據(jù)(區(qū))/將該用戶的所有session數(shù)據(jù)都清除
session_destroy();
SESSION 參數(shù)設置
- 有效期:默認情況一個會話周期為從新增該條COOKIE到瀏覽器關閉為止
- 有效路徑:默認情況下是網(wǎng)站的根目錄及其子目錄下都有效
- 有效域名:默認情況表示當前域名及其子域名有效
- 是否安全傳輸:默認情況表示http或https下都有效酥泛,如果將值設置為true,則表示只有在https下才有效
- httponly:session無效
修改session參數(shù) 可以通過php.ini文件修改
; 有效期
session.cookie_lifetime = 0
; 有效路徑
session.cookie_path = /
; 有效域
session.cookie_domail =
; httponly屬性
session.cookie_httponly =
; 是否安全傳輸
session.cookie_secure =
程序中設置SESSION屬性(推薦)
// 有效期直接設置一個過期秒數(shù)即可
session_set_cookie_params(有效期,有效路徑,有效域,是否安全傳輸,httponly);
禁用cookie后如何session
在禁用COOKIE后今豆,想要正常使用SESSION,就必須依賴于php.ini中的兩個配置項的配置
; 表示SESSION技術的實現(xiàn)是否需要依賴COOKIE 1表示是 0表示否
session.use_only_cookies = 0
; 表示是否允許使用表單傳值的方式傳遞PHPSESSID 0表示否 1表示是
session.use_trans_sid = 1
如果use_only_cookies設置為1揭璃,則use_trans_sid必須設置為0晚凿,反之亦然。
// 傳遞頁面
session_start();
$_SESSION['name'] = 'zjlsp';
header('Refresh:3;url=http://wwwbaidu.com/index.php?SESSIONID='.$PHPSESSID);
// 接收頁面
$SESSIONID = $_GET['SESSIONID'];
session_id($SESSIONID);
session_start();
var_dump($_SESSION);