/**
* ファイル説明 セッションクラス
* ================================================ ================
※ファイル名 session.class.php
*------------------------------------------------ - ---------------
※適用環境:PHP5.2.x / mysql 5.0.x
*------------------------------------------------ - ---------------
※作者は04ieです。コム
*------------------------------------------------ - ---------------
※作成時間 2010-2-1
* ================================================ ================ */
クラスセッション
{
/**
*セッションのデフォルト有効時間
* @アクセス公開
* @var ineger $_expiry */
パブリック $_expiry = 3600;
/**
* 有効なドメイン名
* @アクセス公開
* @var string $_domain */
パブリック $_domain = '.phpfamily.cn';
//初化
パブリック関数 __construct()
{
ini_set('session.use_trans_id', 0);
ini_set('session.gc_maxlifetime', $this->_expiry);
ini_set('session.use_cookie', 1);
ini_set('session.cookie_path', '/');
ini_set('session.cookie_domain', $this->_domain);
セッションモジュール名('ユーザー');
session_set_save_handler(
配列(&$this, 'open'),
array(&$this, 'close'),
配列(&$this, '読み取り'),
array(&$this, '書き込み'),
array(&$this, 'destroy'),
配列(&$this, 'gc')
);
session_start();
}
/**
*セッションを打ちます
* @アクセス公開
* @param string $savePath
* @param string $sName
* @return true */
パブリック関数 open($savePath, $sName)
{
$this->_conn = mysql_connect('localhost', 'root', '');
mysql_select_db('データベース');
mysql_query('SET NAMES "utf8"');
true を返します;
}
/**
* セッションを終了します
* @アクセス公開
* @return bool */
パブリック関数 close()
{
return mysql_close($this->_conn);
}
/**
* セッションを読む
* @アクセス公開
* @param string $sid セッションID
* @return 混合 */
パブリック関数 read($sid)
{
$sql = "セッション WHERE sessionid='%s'"; からデータを選択します
$sql = sprintf($sql, $sid);
$res = mysql_query($sql, $this->_conn);
$row = mysql_fetch_assoc($res);
!$row を返しますか? null : $row['data'];
}
/**
* セッションに書き込みます
* @アクセス公開
* @param string $sid セッションID
* @param string $data シリアル化されたセッション コンテンツをシリアル化します
* @return */
パブリック関数 write($sid, $data)
{
$expiry = time() + $this->_expiry;
$sql = "セッションに置き換えます (セッション ID,expiratio )
n,data) VALUES ('%s', '%d', '%s')";
$sql = sprintf($sql, $sid, $expiry, $data);
mysql_query($sql, $this->_conn);
true を返します;
}
/**
* セッションを破棄します
* @アクセス公開
* @param string $sid セッションID
* @return */
パブリック関数 destroy($sid)
{
$sql = "セッション WHERE から削除 sessionid='%s'";
$sql = sprintf($sql, $sid);
mysql_query($sql, $this->_conn);
true を返します;
}
/**
* 期限切れのセッションをクリーンアップします
* @アクセス公開
* @param integer $time
* @return */
パブリック関数 gc($time = 0)
{
$sql = "期限切れのセッションから削除
$sql = sprintf($sql, time());
mysql_query($sql, $this->_conn);
mysql_query('テーブルセッションの最適化');
true を返します;
}
|