PHP实现session对象封装

<?php
class Session
{
	private $db;				// 设置数据库变量
	private $expiry = 3600;		// 设置Session失效时间	

	public function Session()
	{
		session_set_save_handler(array(& $this,‘_session_open‘),
								array(& $this,‘_session_close‘),
								array(& $this,‘_session_read‘),
								array(& $this,‘_session_write‘),
								array(& $this,‘_session_destroy‘),
								array(& $this,‘_session_gc‘)
		);
	}	

	public function _session_open($save_path,$session_name)
	{
		$this->db = mysql_connect(‘localhost‘,‘root‘,‘123456‘) or die ("数据库连接失败!");
		mysql_select_db("db_database11",$this->db);
		return(true);
	}

	public function _session_close()
	{
		mysql_close($this->db);
		return(true);
	}

	public function _session_read($key)
	{
		$time = time();							// 设定当前时间
		$sql = "select session_data from tb_session where session_key = ‘$key‘ and session_time > $time";
		$result = mysql_query($sql,$this->db);
		$row = mysql_fetch_array($result);
		if ($row)
		{
			return($row[‘session_data‘]);			// 返回Session名称及内容
		}else
		{
			return(false);
		}
	}

	public function _session_write($key,$data)
	{
		$lapse_time = time() + $this->time;					// 得到Unix时间戳
		$sql = "select session_data from tb_session where session_key = ‘$key‘ and session_time > $lapse_time";
		$result = mysql_query($sql,$this->db);
		if (mysql_num_rows($result) == 0 )				// 没有结果
		{
			$sql = "insert into tb_session values(‘$key‘,‘$data‘,$lapse_time)";		// 插入数据库sql语句
			$result = mysql_query($sql,$this->db);
		}else
		{
			$sql = "update tb_session set session_key = ‘$key‘,session_data = ‘$data‘,session_time = $lapse_time where session_key = ‘$key‘";												// 修改数据库sql语句
			$result = mysql_query($sql,$this->db);
		}
		return($result);
	}

	public function _session_destroy($key)
	{
		$sql = "delete from tb_session where session_key = ‘$key‘";					// 删除数据库sql语句
		$result = mysql_query($sql,$this->db);
		return($result);
	}

	public function _session_gc($expiry_time)
	{
		$expiry_time = time();									// 将参数$expiry_time赋值为当前时间戳
		$sql = "delete from tb_session where expiry_time < $expiry_time";	// 删除数据库sql语句
		$result = mysql_query($sql,$this->db);
		return($result);
	}
}
$_session_new = new Session();
session_start();

$_SESSION[‘SID‘] = true;
?>

  

时间: 2024-10-14 02:10:19

PHP实现session对象封装的相关文章

为什么要用Hibernate框架? 把SessionFactory,Session,Transcational封装成包含crud的工具类并且处理了事务,那不是用不着spring了?

既然用Hibernate框架访问管理持久层,那为何又提到用Spring来管理以及整合Hibernate呢?把SessionFactory,Session,Transcational封装成包含crud的工具类并且处理了事务,那不是用不着spring了? Hibernate操作的步骤如下: 1. 获得Configuration对象 2. 创建SessionFactory 3. 创建Session 4. 打开事务 5. 进行持久化操作.比如上面的添加用户操作 6. 提交事务 7. 发生异常,回滚事务

如何获取Session对象中的对象

先调用request的getSession()方法获取一个HttpSession的对象,然后将这个对象进行强制类型转换成原本封装的对象,这样就能获取Session对象中的对象了 1.调用request的getSession()方法 HttpSession session = request.getSession(); 2.强制类型转换 User user = (User) session.getAttribute("session_user"); Session注销后,浏览器后退仍显示

什么是Cookie对象,Session对象,Application对象。

Cookie是: 一个由网页服务器放在您硬盘上的非常小的文本文件. 它本质上就像您的身份证明一样,并且不能像代码那样被执行或被用来散布病毒.它只能被您使用并且只能由提供的服务器读取. 使用Cookie的目的是: 告诉服务器您再次的访问该服务器. Cookie能为您做什么?: 帮您节约时间.如果您自定义页面,或注册产品或服务.cookie帮助微软记住您的身份.当下一次您再次访问的时候,我们将显示您需要的信息.或者当您注册另一个产品或服务的时候,您只需要键入您的E-mail和密码.我们将帮您填入任何

session 对象的简单实例

一个session对象的简单实例: 1.登录界面:使用简单的html表单提交界面. <%@ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "ht

如何理解ASP Session 对象

ASP Session 对象 Previous Page Next Page Session 对象用于存储用户的信息.存储于 session 对象中的 变量握有单一用户的信息,并且对于一个应用程序中的所有页面都是可用的. Session 对象 当您操作某个应用程序时,您打开它,做些改变,然后将它关闭.这很像一次对话(Session). 计算机知道您是谁.它清楚您在何时打开和关闭应用程序.但是在因特网上有一个问题: 由于 HTTP 地址无法存留状态,web 服务器并不知道您是谁以及您做什么. AS

什么是Cookie对象,Session对象,Application对象等问题

1.什么是Cookie对象,Session对象,Application对象 Application对象应用程序状态:Web 应用程序的所有用户都可以访问该应用程序的状态信息Session对象,会话状态:只有特定会话中的用户可以访问该信息不同的用户正在使用某个应用程序,则每个用户都将有一个不同的会话状态客户端状态管理:Cookie对象Cookie:使用文本文件存储信息来维护状态Cookie对象也可以保存客户信息,与Session 对象相似,分别保存不同用户的信息.和Session的区别是:Sess

什么是Cookie对象,Session对象,application对象?

(1)Cookie对象是: 一个由网页服务器放在您硬盘上的非常小的文本文件. 它本质上就像您的身份证明一样,并且不能像代码那样被执行或被用来散布病毒.它只能被您使用并且只能由提供的服务器读取. 使用Cookie的目的是: 告诉服务器您再次的访问该服务器. Cookie能为您做什么?: 帮您节约时间.如果您自定义页面,或注册产品或服务.cookie帮助微软记住您的身份.当下一次您再次访问的时候,我们将显示您需要的信息.或者当您注册另一个产品或服务的时候,您只需要键入您的E-mail和密码.我们将帮

[原创]java WEB学习笔记94:Hibernate学习之路---session 的管理,Session 对象的生命周期与本地线程绑定

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Javascript的对象封装和继承有哪些方法?优劣分别是什么?

1. 对象封装方法 1) 原始模式生成对象 直接将我们的成员写入对象中,用函数返回. 缺点:很难看出是一个模式出来的实例. function Stu(name, score) {             return {                 name: name,                 score: score             }         }         var stu1 = Stu("张三", 80);         var stu2 =