定制php4的session功能

sky跳舞的丫丫

sky跳舞的丫丫

2016-01-29 15:23

定制php4的session功能,定制php4的session功能
       来源:znsoft翻译
  
   定制php4的session功能
  
  把它EMAIL给我 我来谈谈我的看法
  
  
  
  这篇文章描述了怎样定制php4的session处理。我们提供一个怎样写一个全功能的基于mysql数据库或dbm文件的session处理程序例子。
  
  一、序言
  
  新的php4有一套自己的session处理函数。缺省情况下,每个session存贮在系统临时目录的一个个独立文件中(例如在unix系统中为/tmp)。
  这适合或不适合,依你的需求而言。例如:如果你的支持php的web服务器分布在不同的机器上,你不能很容易地共享它们之间的session(当然,你也可以将sessions保存在NFS共享中)。另一个潜在的问题是你机器上的数千或数百万个session文件使你的文件系统变得散乱 。
  对我们来说幸运的是,php4的开发者非常有远见(感谢他们),他们为你我这样的用户提供了扩展session处理的接口。
  
  这个文档解释一点session的处理并且提供两个能够工作的怎样扩展session处理的例子。我们的第一个例子将使session处理程序保存 session数据到DBM文件中。我们的第二个例子将保存session数据到MYSQL数据库中。
  在你开始之前,请下载ying20000602.zip 并且将它解开放到web文档目录中。(我已经将它带在本文的结尾处了)
  任何一个我们写的session处理程序会提供6个基本的函数,它们将被php4的session处理程序调用,所以你不用担心怎样调用它们。
  好在这些定制处理session的函数对你来说是完全透明的。所以你可以改动它们而不会影响你自己的PHP脚本。
  
  这几个函数是:
  sess_open($sess_path, $session_name);
  
  这个函数被session处理程序调用来作初始化工作。需要传给它的两个参数是$sess_path,它对应你的php.ini文件中的session.save_path选项;$session_name,它对应php.ini中的session.name选项。它们具体怎样工作,请看下面的例子。
  
  sess_close();
  
  这个函数在页面结束执行并且session处理程序需要关闭时被调用。(注意,不要和sess_destory混淆了,它是用来结束session的)
  
  sess_read($key);
  
  这个函数在session处理程序读取指定session键值($key)时。
  这个函数检索并返回标识为$key的session数据.(注意:你不用担心怎样序列化和反序列化数据,如果你不知道这是什么意思,不要担心它)
  
  译者注:序列化是将变量或对象在程序结束或需要时保存在文件中,在下次程序运行或需要时再调入内存的技术,有别于只保存数据的方法。
  
  sess_write($key, $val);
  
  这个函数据在session处理程序需要将数据保存时调用,这种情况经常在你的程序结束时发生。
  它负责将数据保存在下次能用sess_read($key)函数检索的地方。
  
  sess_destroy($key);
  
  这个函数在需要消毁session时。它负责删除session并且清除环境。
  
  sess_gc($maxlifetime);
  这个函数负责清理碎片。在这种情况下,它负责删除过时的session数据。session处理程序会偶尔调用它们。
  
  现在我们已经清楚了我们提供的函数。它们不是非要这样命名,但必须接受这些参数。(不管你需不需要它们)
  
  DBM session 处理程序
  
  我们的第一个范例是写一个保存session数据到DBM文件中的定制session处理程序。(这是ying20000602.zip中的session_dbm.php文件)
  
  有很多充足的理由让你要这样做,例如,如果你在isp那儿有一台共享的服务器(译注:相当于我们说的虚拟主机吧)并且你不想让你的session数据
  
  和别人的混在一起。
  
  重要注释:
  在你试验这些程序时你的php4必须有DBM支持。如果不是这样的(译注:如果没有DBM支持)会很难看,真的很难看!
  我们要做的这些工作将会得到一个所有session数据的DBM文件。(万一你不知道,DBM文件象一个仅保存"键/值"对的非常简单的数据库.
  由下面的6个函数据实现:
  
  
  sess_open($sess_path, $session_name);
  我们将调用dbmopen()打开一个处于读写模式的DBM文件。我们的DBM文件将被命名为/tm
展开更多 50%)
分享

猜你喜欢

定制php4的session功能

PHP
定制php4的session功能

php4的session功能评述(一)

PHP
php4的session功能评述(一)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

php4的session功能评述(三)

PHP
php4的session功能评述(三)

php4的session功能评述(二)

PHP
php4的session功能评述(二)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

PHP4中的SESSION管理

PHP
PHP4中的SESSION管理

仅用PHP4 Session实现的迷你购物篮(一)

PHP
仅用PHP4 Session实现的迷你购物篮(一)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《索尼克全明星赛车:变形》游戏模式详解

《索尼克全明星赛车:变形》游戏模式详解

PHP语句中or的用法

PHP语句中or的用法
下拉加载更多内容 ↓