php教程|php手册
php,MySQL,session,session
php教程-php手册
php使用MySQL保存session会话的方法,mysqlsession
asp源码下载 个人博客,mac版vscode编译,ubuntu删除全部,检验tomcat页面,扩展名sqlite与db,爬虫如何等待html加载完成,php 路径存在,邢台seo优化哪家实惠,最大开源网站,网页制作怎么打开网页源怎么打开,dedecms 前台模板免费下载lzw
在很多大的系统中一般都有这个功能,但是要分离出来分析,网上靠谱的资料也不太多 这里我整理了一篇发出来与大家分享
武易传奇源码,vscode txt,ubuntu安装xmind,tomcat 日期,sqlite行数限制,哪里有免费的云服务器,jq点击更换头像插件,开发前端简单框架,爬虫 js动态加载,php 日志,学做seo,文章网站模板,易语言 如何判断网页载入完毕,帝国cms 新闻触屏模板,漂亮的登陆页面源码,java超市资源管理系统,vb入门加密程序lzw
使用MySQL保存session会话较files有很多优点:
qq群查找 源码,vscode刚开始需要联网,ubuntu安装沙箱,tomcat7测试,爬虫搜邮箱,php服务器计划任务,产品网络推广seo排名优化,国外导航网站源码lzw
1) 有利于分布式系统,files只能保存在一台机器上
2) 有利于大访问量的系统,使用files时每个session保存在一个文件中,目录会超级大,查找session文件会比较困难。
//////使用MySQL保存会话首先要创建session表:
/////////MysqlSession 类如下:DB_NAME = &$sessionDB; $this->SESS_LIFE = get_cfg_var("session.gc_maxlifetime"); session_module_name(user); session_set_save_handler( array(&$this, sess_open), array(&$this, sess_close), array(&$this, sess_read), array(&$this, sess_write), array(&$this, sess_destroy), array(&$this, sess_gc) ); session_start();}function sess_open($save_path, $session_name){ // 打开数据库连接 if (! $this->DB_SELECT_DB = mysql_pconnect($this->DB_SERVER, $this->DB_USER, $this->DB_PASS)) { echo "SORRY! MYSQL ERROR : Can connect to $this->DB_SERVER as $DB_USER"; echo "MySQL Error: ", mysql_error(); die; } if (! mysql_select_db($this->DB_NAME, $this->DB_SELECT_DB)) { echo "SORRY! MYSQL ERROR : Unable to select database $this->DB_NAME"; die; } return true; } function sess_close() { return true; } function sess_read($SessionKey){ $Query = "SELECT SessionArray FROM sessions WHERE SessionKey = \".$SessionKey." AND SessionExpTime > " . time(); // 过期不读取。 $Result = mysql_query($Query, $this->DB_SELECT_DB); if (list($SessionArray) = mysql_fetch_row($Result)) { return $SessionArray; } return false; } function sess_write($SessionKey, $VArray) { $SessionExpTime = time() + $this->SESS_LIFE; // 更新Session过期时间, //Session过期时间 = 最后一次更新时间 + Session的最大使用时长 $SessionArray = addslashes($VArray); $Query = "INSERT INTO sessions (SessionKey,SessionExpTime,SessionArray) VALUES (\".$SessionKey.",\".$SessionExpTime.",\".$SessionArray.")"; $Result = mysql_query($Query, $this->DB_SELECT_DB); if (!$Result){ $Query = "UPDATE sessions SET SessionExpTime = \".$SessionExpTime.", SessionArray = \".$SessionArray." WHERE SessionKey = \".$SessionKey." AND SessionExpTime > " . time(); $Result = mysql_query($Query, $this->DB_SELECT_DB); } return $Result; } function sess_destroy($SessionKey) { $Query = "DELETE FROM sessions WHERE SessionKey = \".$SessionKey."\"; $Result = mysql_query($Query, $this->DB_SELECT_DB); return $Result; } function sess_gc($maxlifetime) {// 这个垃圾清除器系统调用。//默认是1440秒清除一次。参数可以在PHP.ini里面设置。 $Query = "DELETE FROM sessions WHERE SessionExpTime DB_SELECT_DB); return mysql_affected_rows($this->DB_SELECT_DB); } }?>//用法:在原来使用 session_start 的地方,替换成 $session = new MysqlSession () //注意:包含此程序前要打开数据库,主程序退出前不能关闭数据库,否则会出错。