700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > php使用MySQL保存session会话办法mysqlsession

php使用MySQL保存session会话办法mysqlsession

时间:2019-12-02 06:29:46

相关推荐

php使用MySQL保存session会话办法mysqlsession

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 () //注意:包含此程序前要打开数据库,主程序退出前不能关闭数据库,否则会出错。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。