PHPで実装されたSESSIONクラス、PHPで実装されたSESSIONクラス
この記事の例では、PHP によって実装された SESSION クラスについて説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
PHP での SESSION のアプリケーションは不可欠であり、最も重要な機能の 1 つです。 SESSION は、ネットワーク アプリケーションでは「セッション」と呼ばれます。このように、ユーザーが Web サイトのページ間を移動するときに、保存された SESSION 値は失われることなく使用されます。セッション全体にわたって、ユーザーセッション全体にわたって存続します。平たく言えば、ユーザー A がオンラインになると、ID (A) 値が作成され、保存されます。ID (A) 値がログアウトされていない場合、次回オンラインになるときに Web サイトは ID (A) を記憶します。 ) 値がある場合、この時点で、オンラインで ID (A) 値を呼び出すことができます。たとえば、もう一度 ID (A) 値にアクセスしてください。
PHP で SESSION 値を適用するのは非常に簡単です。セッションを開始するには、SESSION を使用します。実際、SESSION 自体には多くの属性があります。 、SESSIONサイクル、SESSION呼び出し、SESSIONデータ有効期間、SESSION保存、SESSIONログアウトなどの属性があれば、比較的標準化されたSESSIONアプリケーションセッションと思われます。
以下は、Session の最も基本的な属性値を統合した完全な Session クラスです。その中で、オープン、クローズ、クリーニングは PHP プログラミングの仕様に準拠しており、これも良い習慣です。ちょっとした注意点として、Web サイトで Session クラスを頻繁に使用しない場合は、基本的に SESSION クラスを使用する必要はありません。
コードをコピーします コードは次のとおりです:
/**
* ファイル説明 セッションクラス
* ================================================ ================
* ファイル名 session.class.php
*------------------------------------------------ - ---------------
※適用環境:PHP5.2.x / mysql 5.0.x
*------------------------------------------------ - ---------------
※作者は04ieです。コム
*------------------------------------------------ - ---------------
* 作成時間 2010-2-1
* ================================================ ================
*/
クラスセッション
{
/**
*セッションのデフォルトの有効時間
*@アクセス公開
* @var ineger $_expiry
*/
パブリック $_expiry = 3600;
/**
* 有効なドメイン名
*@アクセス公開
* @var 文字列 $_domain
*/
パブリック $_domain = '.jb51.net';
//初期化
パブリック関数 __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(
array(&$this, 'open')、
array(&$this, 'close')、
配列(&$this, '読み取り')、
array(&$this, '書き込み')、
配列(&$this, '破壊')、
配列(&$this, 'gc')
);
セッション開始();
}
/**
* 打开セッション
*@アクセス公開
* @param 文字列 $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 文字列 $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 文字列 $sid セッション ID
* @param string $data シリアル化されたセッション コンテンツをシリアル化します
* @return
*/
パブリック関数 write($sid, $data)
{
$expiry = time() + $this->_expiry;
$sql = "セッションに置き換えます (セッションID,期限切れ
)
n,data) VALUES ('%s', '%d', '%s')";
$sql = sprintf($sql, $sid, $expiry, $data);
mysql_query($sql, $this->_conn);
true を返します。
}
/**
* 销毁セッション
*@アクセス公開
* @param 文字列 $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('OPTIMIZE TABLE セッション');
true を返します。
}
ここで説明されている大規模な PHP プログラムの設計が役立つことを望みます。
http://www.bkjia.com/PHPjc/920608.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/920608.html技術記事 php で実行される SESSION クラス、php で実行される SESSION クラス この例では、php で実行される SESSION タイプについて説明します。