您的位置:首页 >新闻中心 >建站知识

建站知识

如何在数据库中存储Session信息

发布日期:2013-12-06 15:36:42阅读次数:893次
分享到:

大部分使用PHP的人一旦应用到Session都会使用Cookie。Cookie虽好可是它也会给我们带来一些隐患。

隐患一:

如果客户端机器的Cookie一旦因病毒而失效了,那么Session信息也就相当于没有了。

隐患二:

Session在PHP中默认的是以文件的形式保存在一个临时文件夹里面的,对于一个小型系统来说,这样做完全可以,可是对于一个大型而又被经常访 问的系统来说,就不是很好的办法了。假设这个网站一天有1 000个人访问。一个月以后Session的临时文件夹就会有30 000个临时文件。想象一下计算机要从30 000里面找一条session_sid是要花费不少时间的。因此为了提高效率,使用用数据库来保存Session不失为解决这个矛盾的好方法。

Session在php中默认的是以文件的形式保存在一个临时文件夹里面的。可以通过修改php.ini文件的 session.save_handler设置来改变Session的保存方式。默认为session.save_handler = files,必须将其修改为session.save_handler = user,即变为用户自定义方式。

完成这一步后,我们可以创建自己的用户级的Session的保存函数(打开、关闭、写入等),然后必须使用 session_set_save_handler函数注册自己创建的Session的保存函数。使用session_set_save_handler 函数前,必须先要配置php.ini文件,即session.save_hadler=user,否 则,session_set_save_handler函数不会生效。

你如果想让这样的Session跨页面使用,还要在每一个用到Session的脚本文件中加入你自定的函数及用 session_set_save_handler函数进行注册,所以,最好的方法是做成一个单独的文件,在每一个要用到Session的脚本中用 include来包含进来。

目录结构

  1. /samples
  2.   /chap3
  3.    /savesession
  4.     session_save.php        注册自己创建的session的保存函数
  5.     set_session_test.php    session设置测试脚本
  6.     get_session_test.php    session显示测试脚本

http://blog.csdn.net/shine0181/article/details/7088297