最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > 建站教程 > php教程 >

php SESSION类(购物车类)

时间:2014-06-09 16:40来源: 作者: 点击: 次
关于 SESSION 在 php 中的应用是必不要少的,最重要的功能之一,SESSION 在网络应用中,称为会话,我们通常理解为存储特定用户会话所需的信息,这样,当用户在网站页面之间跳转时,存储的 SES

关于 SESSION 在 php 中的应用是必不要少的,最重要的功能之一,SESSION 在网络应用中,称为“会话”,我们通常理解为存储特定用户会话所需的信息,这样,当用户在网站页面之间跳转时,存储的 SESSION 值不会丢失,而是在整个用户会话中一直存活下去。通俗一点讲,就是当用户A上网时,会创建一个ID(a)值进行保存下来,如果你的ID(A)值没有进行注销,下次上网时,这个网站还会记得你的ID(A)值,这个时候就可以在网上进行调用你的ID(A)值了,比如欢迎您ID(A)值再一次访问。

关于在 PHP 中应用 SESSION 值是很简单的,只要在顶端提前输入 session_start() 开始会话即可,下面就可以进行使用 SESSION 了,这只是小网站的应用方法,实际上,SESSION 自身还有许多属性,比如 SESSION周期,调用SESSION,SESSION数据有效期,SESSION保存,SESSION注销等等,如果有了这些属性,看起来才算是一个比较规范的SESSION应用会话。

下面是一个完整的 Session 类,整合了 Session 最基本的属性值,其中,打开,关闭与清理是符合php编程规范的,这也是一个很好的习惯。小小的说明一下,如果网站不是大量使用 Session 类,基本上就没必要使用 SESSION 类了。

  1.  <?php 
  2. /** 
  3. * 文件描述 Session类 
  4. * ================================================================= 
  5. * 文件名称 session.class.php 
  6. * ----------------------------------------------------------------- 
  7. * 适用环境: PHP5.2.x / mysql 5.0.x 
  8. * ----------------------------------------------------------------- 
  9. * 作 者 04ie。com 
  10. * ----------------------------------------------------------------- 
  11. * 创建时间 2010-2-1 
  12. * ================================================================= 
  13. */ 
  14. class Session 
  15. { 
  16. /** 
  17. * session默认有效时间 
  18. * @access public 
  19. * @var ineger $_expiry 
  20. */ 
  21. public $_expiry = 3600; 
  22. /** 
  23. * 有效域名 
  24. * @access public 
  25. * @var string $_domain 
  26. */ 
  27. public $_domain = '.phpfamily.cn'; 
  28. //初始化 
  29. public function __construct() 
  30. { 
  31. ini_set('session.use_trans_id', 0); 
  32. ini_set('session.gc_maxlifetime', $this->_expiry); 
  33. ini_set('session.use_cookie', 1); 
  34. ini_set('session.cookie_path', '/'); 
  35. ini_set('session.cookie_domain', $this->_domain); 
  36. session_module_name('user'); 
  37. session_set_save_handler( 
  38. array(&$this, 'open'), 
  39. array(&$this, 'close'), 
  40. array(&$this, 'read'), 
  41. array(&$this, 'write'), 
  42. array(&$this, 'destroy'), 
  43. array(&$this, 'gc') 
  44. ); 
  45. session_start(); 
  46. } 
  47. /** 
  48. * 打开session 
  49. * @access public 
  50. * @param string $savePath 
  51. * @param string $sName 
  52. * @return true 
  53. */ 
  54. public function open($savePath, $sName) 
  55. { 
  56. $this->_conn = mysql_connect('localhost', 'root', ''); 
  57. mysql_select_db('databases'); 
  58. mysql_query('SET NAMES "utf8"'); 
  59. return true; 
  60. } 
  61. /** 
  62. * 关闭session 
  63. * @access public 
  64. * @return bool 
  65. */ 
  66. public function close() 
  67. { 
  68. return mysql_close($this->_conn); 
  69. } 
  70. /** 
  71. * 读取session 
  72. * @access public 
  73. * @param string $sid sessionID 
  74. * @return mixed 
  75. */ 
  76. public function read($sid) 
  77. { 
  78. $sql = "SELECT data FROM sessions WHERE sessionid='%s'"; 
  79. $sql = sprintf($sql, $sid); 
  80. $res = mysql_query($sql, $this->_conn); 
  81. $row = mysql_fetch_assoc($res); 
  82. return !$row ? null : $row['data']; 
  83. } 
  84. /** 
  85. * 写入session 
  86. * @access public 
  87. * @param string $sid sessionID 
  88. * @param string $data serialize序列化后的session内容 
  89. * @return 
  90. */ 
  91. public function write($sid, $data) 
  92. { 
  93. $expiry = time() + $this->_expiry; 
  94. $sql = "REPLACE INTO sessions (sessionid,expiratio 
  95. n,data) VALUES ('%s', '%d', '%s')"; 
  96. $sql = sprintf($sql, $sid, $expiry, $data); 
  97. mysql_query($sql, $this->_conn); 
  98. return true; 
  99. } 
  100. /** 
  101. * 销毁session 
  102. * @access public 
  103. * @param string $sid sessionID 
  104. * @return 
  105. */ 
  106. public function destroy($sid) 
  107. { 
  108. $sql = "DELETE FROM sessions WHERE sessionid='%s'"; 
  109. $sql = sprintf($sql, $sid); 
  110. mysql_query($sql, $this->_conn); 
  111. return true; 
  112. } 
  113. /** 
  114. * 清理过期session 
  115. * @access public 
  116. * @param integer $time 
  117. * @return 
  118. */ 
  119. public function gc($time = 0) 
  120. { 
  121. $sql = "DELETE FROM sessions WHERE expiration < '%d'"; 
  122. $sql = sprintf($sql, time()); 
  123. mysql_query($sql, $this->_conn); 
  124. mysql_query('OPTIMIZE TABLE sessions'); 
  125. return true; 
  126. } 
  127.   
(责任编辑:admin)
------分隔线----------------------------
栏目列表
推荐内容