快捷搜索: W

php教程_定制php4的session功效

阅读推荐:
php教程_PHP如何调用JAVA 类库
[Java基础知识]在运行时实现Java的多态性_java基础知识总结
java教程_凡是用到swing包的程序不能编译-一个问题的解决 java基地教程-教程
php教程_如何处理在数据库中使用联合操作
php教程_请推荐一个好的joomla邮件群发PHP模块解决方法
《世界人体绘画艺术图典》彩图版[PDF]
Adobe Dreamweaver CS5 简体中文版(绿色免安装)
求痘痘
java教程_Java将学习开放源代码的自由创造方式 java基地教程-教程
php教程_php4和php5区别


php教程:

  这篇文章描写了怎样定制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处理程序会偶然调用它们。

您可能还会对下面的文章感兴趣: