<?php
/*============================文件說明========================================
@filename: session
@description: 數據庫保存在線用戶session
@notice: session過期時間一個小時
因此我們只記錄用戶登錄的時間
刪除數據庫中session記錄的動作發生在用戶超時後執行這個文件或正常退出(session_destory)
@database: database:sessions field:sessionid(char
=============================================================================
*/
class session {
private $db;
private $lasttime=
function session(&$db) {
$this
session_module_name(
session_set_save_handler(
array(&$this
array(&$this
array(&$this
array(&$this
array(&$this
array(&$this
);
session_start(); //這也是必須的
}
function unserializes($data_value) {
$vars = preg_split(
$data_value
PREG_SPLIT_DELIM_CAPTURE
);
for ($i =
$result[$vars[$i++]] = unserialize($vars[$i]);
}
return $result;
}
function open($path
return true;
}
function close() {
$this
return true;
}
function read($SessionKey){
$sql = "SELECT uid FROM sessions WHERE session_id =
$query =$this
if($row=$this
return $row[
}else{
return "";
}
}
function write($SessionKey
require_once(MRoot
$db
// make a connection to the database
$db
$db
$this
$SessionArray = addslashes($VArray);
$data=$this
$sql
$query
if($this
if (isset($data[
$this
}
return true;
}else{
/*$sql = "update `sessions` set ";
if(isset($data[
$sql
}
$sql
$this
return true;
}
}
function destroy($SessionKey) {
$this
return true;
}
function gc($lifetime) {
$this
return true;
}
}
?>
下面是php
session
存儲和檢索與會話關聯的數據的處理器名字
如果想要使用自定義的處理器(如基於數據庫的處理器)
有一個使用PostgreSQL的處理器
session
傳遞給存儲處理器的參數
Windows下默認為臨時文件夾路徑
你可以使用"N[MODE]/path"這樣模式定義該路徑(N是一個整數)
N表示使用N層深度的子目錄
[MODE]可選
這是一個提高大量會話性能的好主意
注意
注意
注意
注意
注意
session
用在cookie裡的會話ID標識名
session
在客戶訪問任何頁面時都自動初始化會話
因為類定義必須在會話啟動之前被載入
session
用來序列化/解序列化數據的處理器
另外還可以使用"php_binary"
session
session
定義在每次初始化會話時
這個收集概率計算公式如下
對會話頁面訪問越頻繁
session
超過此參數所指的秒數後
判斷標准是最後訪問數據的時間(對於FAT文件系統是最後刷新數據的時間)
如果多個腳本共享同一個session
那麼將以所有session
如果使用多層子目錄來存儲數據文件
你必須使用一個你自己編寫的shell腳本
比如
cd /path/to/sessions find
session
如果請求頭中的"Referer"字段不包含此處指定的字符串則會話ID將被視為無效
注意
默認為空
session
附加的用於創建會話ID的外部高熵值資源(文件)
例如UNIX系統上的"/dev/random"或"/dev/urandom"
session
從高熵值資源中讀取的字節數(建議值
session
是否使用cookie在客戶端保存會話ID
session
是否僅僅使用cookie在客戶端保存會話ID
打開這個選項可以避免使用URL傳遞會話帶來的安全問題
但是禁用Cookie的客戶端將使會話無法工作
session
傳遞會話ID的Cookie有效期(秒)
session
傳遞會話ID的Cookie作用路徑
session
傳遞會話ID的Cookie作用域
默認為空表示表示根據cookie規范生成的主機名
session
是否僅僅通過安全連接(https)發送cookie
session
是否在cookie中添加httpOnly標志(僅允許HTTP協議訪問)
這將導致客戶端腳本(JavaScript等)無法訪問該cookie
打開該指令可以有效預防通過XSS攻擊劫持會話ID
session
設為{nocache|private|public}以指定會話頁面的緩存控制模式
或者設為空以阻止在http應答頭中發送禁用緩存的命令
session
指定會話頁面在客戶端cache中的有效期限(分鐘)
session
session
是否使用明碼在URL中顯示SID(會話ID)
默認是禁止的
基於URL的會話管理總是比基於Cookie的會話管理有更多的風險
session
session
PHP
即使在register_globals=Off的情況下也允許初始化全局session變量
如果你在PHP
建議關閉該"BUG"並顯示警告
session
生成SID的散列算法
建議使用SHA
session
指定在SID字符串中的每個字符內保存多少bit
這些二進制數是hash函數的運算結果
建議值為
url_rewriter
此指令屬於PHP核心部分
指定重寫哪些HTML標簽來包含SID(僅當session
form和fieldset比較特殊
如果你包含他們
如果要符合XHTML標准
注意
推薦值為"a=href
From:http://tw.wingwit.com/Article/program/PHP/201311/21306.html