php session自定义处理
原文:http://www.cnblogs.com/mrcoke/ 这个人的博客上转的。
这个博客也好: 学算法和数据结构!!http://blog.csdn.net/21aspnet/article/category/286009
------------------------------
PHP session自定义处理,将session保存到数据库中!!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | session.gc_probability = 1 //默认是1 ,越大越好 session.gc_divisor = 100 //默认是100,越小越好 // 默认是一百次请求调用一次gc 。session.gc_probability相当于分子,session.gc_divisor相当于分母。如果想每次都调用gc 两个改成一样就可以了 session.gc_maxlifetime = 30 // session生存时间 <?php function session_open( $session_path , $session_name ) { mysql_connect( 'localhost' , 'root' , 'root' ); mysql_select_db( 'demo' ); mysql_query( "SET NAMES utf8" ); } function session_close() { return TRUE; } function session_read( $SID ) { $query = "SELECT value FROM session where SID= '$SID' AND expiration >" .time(); $result = mysql_query( $query ); if (mysql_num_rows( $result )) { $row = mysql_fetch_assoc( $result ); $value = $row [ 'value' ]; return $value ; } else { return FALSE; } } function session_write( $SID , $value ) { $lifetime = get_cfg_var( "session.gc_maxlifetime" ); $expiration = time() + $lifetime ; $query = "INSERT INTO session VALUES('$SID', '$expiration', '$value')" ; $result = mysql_query( $query ); if (! $result ) { $query = "UPDATE session SET expiration = '$expiration', value = '$value' WHERE SID = '$SID' AND expiration >" .time(); $result = mysql_query( $query ); } } function sessionDestroy( $SID ) { $query = "DELETE FROM session WHERE SID = '$SID'" ; $result = mysql_query( $query ); } function session_gc() { $query = "DELETE FROM session WHERE expiration <" .time(); $result = mysql_query( $query ); echo mysql_affected_rows(); } session_set_save_handler( "session_open" , "session_close" , "session_read" , "session_write" , "sessionDestroy" , "session_gc" ); session_start(); ?> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现