php自定义session示例分享
PHP 示例 分享 自定义 session
2023-06-13 09:15:25 时间
下面为session类的代码
<?php
classsession
{
staticfunctioninit()
{
session_set_save_handler(
array("session","open"),
array("session","close"),
array("session","read"),
array("session","write"),
array("session","destroy"),
array("session","gc")
);
}
staticfunctionopen($save_path,$session_name)
{
echo"sessionopening!<br>";
/*global$db,$REMOTE_ADDR;
$rs=$db->Execute("select*fromSessionswhereSessionID="".session_id().""");
$arry=$rs->FetchRow();
if($rs&&$arry)
{
$db->Execute("updateSessionssetSessionLast=NOW()whereSessionID="".session_id().""");
}
else
{
$query="insertintoSessionssetSessionID="".session_id()."",SessionName="$REMOTE_ADDR",SessionLast="NOW()"";
//echo$query;
$db->Execute($query);
}*/
returntrue;
}
staticfunctionclose()
{
return(true);
}
staticfunctionread($id)
{
echo"sessionreadingnow!<br>";
global$db;
returntrue;
$timenow=strftime("%Y-%m-%d%H:%M:%S",time());
$query="selectSessionDatafromSessionswhereSessionID="$id"andSessionLast>"$timenow"";
$rs=$db->Execute($query);
if(list($SessionData)=$rs->FetchRow())
{
//echo$SessionData;
return$SessionData;
}
else
{
returnfalse;
}
}
staticfunctionwrite($id,$sess_data)
{
echo"sessionwritingnow!<br>";
global$db;
$rs=$db->Execute("selectSessionIDfromSessionswhereSessionID="$id"");
$num=$rs->RecordCount();
$unix_time=time()+MY_SESS_TIME;
//echoMY_SESS_TIME;
$dateleft=strftime("%Y-%m-%d%H:%M:%S",$unix_time);
if($num<=0)
{
$sql="insertintoSessionssetSessionData="$sess_data",SessionName="".$_SERVER["REMOTE_ADDR"]."",SessionLast="$dateleft",SessionID="".session_id().""";
}
else
{
$sql="updateSessionssetSessionData="$sess_data",SessionName="".$_SERVER["REMOTE_ADDR"]."",SessionLast="$dateleft"whereSessionID="$id"";
}
$db->Execute($sql);
}
staticfunctiondestroy($id)
{
echo"sessiondestroyingnow!<br>";
global$db;
$sql="DELETEFROMSessionsWHERE`SessionID`="$id"";
$rs=$db->Execute($sql);
return$rs;
//$sess_file="$sess_save_path/sess_$id";
//return(@unlink($sess_file));
}
/*********************************************
*WARNING-Youwillneedtoimplementsome*
*sortofgarbagecollectionroutinehere.*
*********************************************/
staticfunctiongc($maxlifetime)
{
echo"sessionmaxlifetimenow!<br>";
global$db;
$timenow=strftime("%Y-%m-%d%H:%M:%S",time());
$sql="DELETEFROM`$table_sessions`WHERE`SessionLast`<"$timenow"";
return$sess_db->Execute($sql);
//echo"nowgc!<br>";
returntrue;
}
//proceedtousesessionsnormally
}
使用方法
include("session.class.php");
session::init();
session_start();
define("MY_SESS_TIME",3600);//SESSION生存时长
$_SESSION["test"]="abcdef";
相关文章
- PHP进阶与redis锁限制并发访问功能示例
- 笛卡尔积 php,PHP笛卡尔积实现算法示例
- 交互PHP与MySQL联动:实现数据交互(php与mysql数据库)
- 命令在PHP中执行Linux命令的方法(php执行linux)
- 分钟结合简单快捷:PHP跟MySQL搭配,5分钟搞定!(php与mysql5)
- 器使用Linux快速启动PHP服务器(linux启动php服务)
- PHP连接MySQL数据库的实现代码分享(php连接mysql代码)
- 内 php 耗时查看Oracle中PHP耗时的小时分解(oracle查询小时)
- PHP轻松访问MySQL数据:使用简明易懂的方法获取数据(php获取mysql数据)
- 构建LAMP环境 以增加PHP的MSSQL扩展(增加php扩展mssql)
- PHP的MySQL编程示例(php的mysql代码)
- 优雅式PHP配置MySQL数据库(php 配置 mysql)
- PHP 存入 MySQL 数据库教程(php 存入mysql)
- PHP实现华丽丽的图片上传 MySQL储存精妙记录(php上传图片mysql)
- 借助Oracle和PHP打造高效网络系统(oracle php系统)
- php实现memcache缓存示例讲解
- php中文验证码实现示例分享
- PHP获取php,mysql,apche的版本信息示例代码
- php共享内存段示例分享
- php使用百度翻译api示例分享
- php去除字符串换行符示例分享
- php多文件上传下载示例分享
- php读取excel文件示例分享(更新修改excel)
- php统计时间和内存使用情况示例分享
- php实现水仙花数示例分享
- php读取大文件示例分享(文件操作类)
- PHP延迟静态绑定示例分享
- PHP+MySQL插入操作实例
- PHP导出Excel示例分享