查看: 5719|回复: 0
打印 上一主题 下一主题

于Mysql存取session实例

[复制链接]
跳转到指定楼层
1#
发表于 2007-10-5 15:24:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
  1. files:
  2. common/Common.config.php
  3. include/session.inc.php
  4. session_test.php
  5. get_session_test.php
  6. get_session_test2.php
  7. Common.config.php
  8. <?php
  9. /*
  10. * Common config
  11. * By 恋太后天
  12. */


  13. /*
  14. * Database config
  15. */
  16. define( "DBTYPE", "mysql" );
  17. $database = array
  18. (
  19.     "mysql" => array
  20.     (
  21.         "default" => array
  22.         (
  23.               "host"     => "localhost",
  24.               "user"     => "root",
  25.               "password" => "",
  26.               "dbname"   => ""
  27.         ),
  28.         "session" => array
  29.         (
  30.               "host"     => "localhost",
  31.               "user"     => "session",
  32.               "password" => "session",
  33.               "dbname"   => "sessions"
  34.         )
  35.     )
  36. );

  37. ?>


  38. session.inc.php


  39. <?php
  40. //使用mysql存放session 函数表
  41. // by 恋太后天 2005-4-28

  42. if (!isset($include_path)) $include_path = '';

  43. if (!is_array($database))
  44. {
  45.     include ($include_path."common/Common.config.php");
  46. }

  47. $DBsess      = $database[DBTYPE]["session"];
  48. $DBsess_link = mysql_connect($DBsess["host"], $DBsess["user"], $DBsess["password"])
  49.                or die ("Error:Can not connect to Mysql server.");

  50. $SESS_LIFE = get_cfg_var("session.gc_maxlifetime");

  51. function sess_open($path, $name)
  52. {
  53.     return true;
  54. }

  55. function sess_close()
  56. {
  57.     return true;
  58. }

  59. function sess_read($id)
  60. {
  61.     global $DBsess , $DBsess_link;
  62.     mysql_select_db($DBsess["dbname"]);
  63.     $now = time();
  64.     $result = mysql_query("SELECT `data` FROM `sessions`
  65.                            WHERE `id`= '$id' AND `expiry_time` > $now", $DBsess_link);   
  66.     if (list($data) = mysql_fetch_row($result))
  67.     {   
  68.        return $data;   
  69.     }   
  70.     return false;
  71. }

  72. function sess_write($id, $data)
  73. {
  74.     global $DBsess , $DBsess_link, $SESS_LIFE;
  75.     mysql_select_db($DBsess["dbname"]);

  76.     $expiry_time = time() + $SESS_LIFE;

  77.     if ( !get_magic_quotes_gpc() )
  78.     {
  79.         $data = addslashes($data);
  80.     }

  81.     $now = time();

  82.     $result = mysql_query("INSERT into `sessions` (`id`, `expiry_time`,  `data`)", $DBsess_link);

  83.     if ( !$result )
  84.     {
  85.         $result = mysql_query("UPDATE `sessions` SET `data`='$data', `expiry_time`=$expiry_time
  86.                                WHERE `id` = '$id' AND `expiry_time` > $now", $DBsess_link);
  87.     }

  88.     return $result;
  89. }

  90. function sess_destroy($id)
  91. {
  92.     global $DBsess , $DBsess_link;
  93.     mysql_select_db($DBsess["dbname"]);
  94.     $query = mysql_query("DELETE FROM `session` WHERE `id`='$id'");
  95.     return $query;
  96. }

  97. function sess_gc($maxlifetime)
  98. {
  99.     global $DBsess , $DBsess_link;  
  100.     $query = mysql_query("DELETE FROM `sessions` WHERE `expiry_time` < " . time(), $DBsess_link);   
  101.     return mysql_affected_rows($DBsess_link);  

  102. }

  103. session_module_name();
  104. session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");

  105. ?>


  106. session_test.php
  107.    
  108. <?php
  109. // test for using session
  110. include ("common/Common.config.php");
  111. include ("include/session.inc.php");

  112. session_start();

  113. $_SESSION["abc"] = "A: I will be back!";
  114. $_SESSION["meto"] = "B: Me too ";
  115. echo "click me";

  116. ?>

  117. get_session_test.php


  118.    
  119. <?php
  120. // test for using session
  121. include ("common/Common.config.php");
  122. include ("include/session.inc.php");

  123. session_start();
  124. /*
  125. * www.knowsky.com
  126. */
  127. $_SESSION["c"] = "
  128. C: I will follow U. ^0^!";
  129. print($_SESSION["abc"]);
  130. print("
  131. ");
  132. print($_SESSION["meto"]);
  133. echo "
  134. ".
  135.      "click again";

  136. ?>


  137. get_session_test2.php

  138.    
  139. <?php
  140. //get_session_test2.php
  141. // test for using session
  142. include ("common/Common.config.php");
  143. include ("include/session.inc.php");

  144. session_start();
  145. print($_SESSION["c"]);
  146. ?>
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表