ホームページ  >  記事  >  バックエンド開発  >  PHP カスタム セッションの例の共有_PHP チュートリアル

PHP カスタム セッションの例の共有_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:32:05750ブラウズ

次はsessionクラスの代コード

复制代コードの例の下:

class session
{
static function init()
{
session_set_save_handler(
ar ray("セッション","オープン"),
array("セッション","閉じる"),
array("セッション","読み取り"),
array("セッション","書き込み"),
array("セッション","破棄") ,
array("session","gc")
);
}

static function open($save_path,$session_name)
{
echo "セッション開始!
";
/*global $db, $REMOTE_ADDR;
$rs = $db->Execute("select * from Sessions where SessionID='".session_id()."'");
$arry=$rs->FetchRow();
if( $rs && $arry)
{
$db->Execute("update Sessions set SessionLast=NOW() where SessionID='".session_id()."'");
}
else
{
$query = "セッションに挿入 set SessionID='".session_id()."',SessionName='$REMOTE_ADDR',SessionLast='NOW()'";
//echo $query;
$db->Execute($query );
}*/
return true;
}
static function close()
{
return(true);
}

static function read($id)
{
echo "セッションを読み取り中!
";
global $db;
return true;
$timenow = strftime("%Y-%m-%d %H:%M:%S", time());
$query = "セッションからセッションデータを選択ここで、SessionID='$id' および SessionLast > '$timenow'";
$rs = $db->Execute($query);
if(list($SessionData) = $rs->FetchRow())
{
//echo $SessionData;
return $SessionData;
}
else
{
return false;
}
}

static function write($id,$sess_data)
{
echo "セッション書き込み中!
";
global $db;
$rs = $db->Execute("SessionID='$id' のセッションからセッション ID を選択");
$num = $rs->RecordCount();
$unix_time = time()+MY_SESS_TIME;
/ /echo MY_SESS_TIME;
$dateleft = strftime("%Y-%m-%d %H:%M:%S", $unix_time);
if($num {
$sql = "セッションに挿入 set SessionData='$sess_data', SessionName='".$_SERVER["REMOTE_ADDR"]."', SessionLast='$dateleft', SessionID='".session_id()."'";
}
else
{
$sql = "セッションを更新 set SessionData='$sess_data', SessionName='".$_SERVER["REMOTE_ADDR"]."', SessionLast='$dateleft' where SessionID='$id'";
}
$db->Execute($sql);
}

static function destroy($id)
{
echo "セッションを破棄中!
";
global $db;
$sql = "DELETE FROM セッション WHERE `SessionID` = '$id'";
$rs = $db->Execute($sql);
return $rs;
// $sess_file = "$sess_save_path/sess_$id";
/ /return(@unlink($sess_file));
}

/***********************************************
* 警告 - 必要になります。ここで *
* のようなガベージ コレクション ルーチンを実装します。 *
********************************************/
static function gc($maxlifetime)
{
echo "session maxlifetime now!
";
global $db ;
$timenow = strftime("%Y-%m-%d %H:%M:%S", time());
$sql = "DELETE FROM `$table_sessions` WHERE `SessionLast` < '$timenow'";
return $sess_db->Execute($sql);
//echo "now gc!
";
return true;
}
// 通常のセッションの使用に進みます
}

使用方法

复制代码代码如下:

include("session.class.php");
セッション::init();
session_start();
define("MY_SESS_TIME", 3600); //SESSION生存時間长
$_SESSION["test"] = "abcdef";

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/759332.html技術記事セッション クラスのコードは以下にコピーされます: ?php class session { static function init() { session_set_save_handler( array("session","open"), array("session","close"), a...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。