您的位置:首页 > 编程语言 > PHP开发

php session自定义处理

2014-04-11 17:50 316 查看
1 session.gc_probability = 1        //默认是1 ,越大越好
2
3 session.gc_divisor     = 100     //默认是100,越小越好
4
5 // 默认是一百次请求调用一次gc 。session.gc_probability相当于分子,session.gc_divisor相当于分母。如果想每次都调用gc 两个改成一样就可以了
6
7 session.gc_maxlifetime = 30   // session生存时间
8
9 <?php
10  function session_open($session_path, $session_name)
11  {
12   mysql_connect('localhost', 'root', 'root');
13   mysql_select_db('demo');
14   mysql_query("SET NAMES utf8");
15  }
16
17  function session_close()
18  {
19   return TRUE;
20  }
21
22  function session_read($SID)
23  {
24   $query = "SELECT value FROM session where SID= '$SID' AND expiration >".time();
25   $result = mysql_query($query);
26   if(mysql_num_rows($result))
27   {
28    $row = mysql_fetch_assoc($result);
29    $value = $row['value'];
30    return $value;
31   }else
32   {
33    return FALSE;
34   }
35  }
36
37  function session_write($SID, $value)
38  {
39   $lifetime = get_cfg_var("sessio
a99d
n.gc_maxlifetime");
40   $expiration = time() + $lifetime;
41   $query = "INSERT INTO session VALUES('$SID', '$expiration', '$value')";
42   $result = mysql_query($query);
43
44   if (!$result)
45   {
46    $query = "UPDATE session SET expiration = '$expiration', value = '$value' WHERE SID = '$SID' AND expiration >".time();
47    $result = mysql_query($query);
48   }
49  }
50
51  function sessionDestroy($SID)
52  {
53   $query = "DELETE FROM session WHERE SID = '$SID'";
54   $result = mysql_query($query);
55  }
56
57  function session_gc()
58  {
59   $query = "DELETE FROM session WHERE expiration <".time();
60   $result = mysql_query($query);
61   echo mysql_affected_rows();
62  }
63
64  session_set_save_handler("session_open", "session_close", "session_read", "session_write", "sessionDestroy", "session_gc");
65  session_start();
66
67 ?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: