php自定义session示例分享_php教程-查字典教程网
php自定义session示例分享
php自定义session示例分享
发布时间:2016-12-29 来源:查字典编辑
摘要:下面为session类的代码复制代码代码如下:

下面为session类的代码

复制代码 代码如下:

<?php

class session

{

static function init()

{

session_set_save_handler(

array("session","open"),

array("session","close"),

array("session","read"),

array("session","write"),

array("session","destroy"),

array("session","gc")

);

}

static function open($save_path,$session_name)

{

echo "session opening!<br>";

/*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 = "insert into Sessions 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 "session reading now!<br>";

global $db;

return true;

$timenow = strftime("%Y-%m-%d %H:%M:%S", time());

$query = "select SessionData from Sessions where SessionID='$id' and 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 "session writing now!<br>";

global $db;

$rs = $db->Execute("select SessionID from Sessions where SessionID='$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 <= 0)

{

$sql = "insert into Sessions set SessionData='$sess_data', SessionName='".$_SERVER["REMOTE_ADDR"]."', SessionLast='$dateleft', SessionID='".session_id()."'";

}

else

{

$sql = "update Sessions set SessionData='$sess_data', SessionName='".$_SERVER["REMOTE_ADDR"]."', SessionLast='$dateleft' where SessionID='$id'";

}

$db->Execute($sql);

}

static function destroy($id)

{

echo "session destroying now!<br>";

global $db;

$sql = "DELETE FROM Sessions WHERE `SessionID` = '$id'";

$rs = $db->Execute($sql);

return $rs;

// $sess_file = "$sess_save_path/sess_$id";

//return(@unlink($sess_file));

}

/*********************************************

* WARNING - You will need to implement some *

* sort of garbage collection routine here. *

*********************************************/

static function gc($maxlifetime)

{

echo "session maxlifetime now!<br>";

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!<br>";

return true;

}

// proceed to use sessions normally

}

使用方法

复制代码 代码如下:

include("session.class.php");

session::init();

session_start();

define("MY_SESS_TIME", 3600); //SESSION 生存时长

$_SESSION["test"] = "abcdef";

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新php教程学习
    热门php教程学习
    编程开发子分类