PHP 板


LINE

看板 PHP  RSS
※ 引述《rockmanalpha (KIN)》之铭言: : 正常来说SESSION每 5分钟(300) 会更新SESSION的上次活动时间 : 然後当这个时间与现在时间作比较 超过 SESSION有效时间 2小时(7200) : 就视作SESSION无效 但很奇怪的是 现在我用ion_auth 无论系统闲置与否 : 在5分钟後 即 sess_time_to_update =300 CI会帮我产生一个新的SESSIONID : 然後我原本的SESSION就无效了 但是旧的活动时间有更新到 = = 可是我明明设定了 : SESSION有效时间是7200呀 请问各位板友有用过这个framework跟插件吗 感谢 这问题,你观察到的结果是正确的。 我们来看一下CI处理session的原始码,其中每n分钟更新session的部份: // We only update the session every five minutes by default if (($this->userdata['last_activity'] + $this->sess_time_to_update) >= $this->now) { return; } // Save the old session id so we know which record to // update in the database if we need it $old_sessid = $this->userdata['session_id']; $new_sessid = ''; while (strlen($new_sessid) < 32) { $new_sessid .= mt_rand(0, mt_getrandmax()); } 我只节录前面一点点,第一个IF检查了这个session的最後活动时间(last_activity), 格式是unix timestamp,他会纪录你上次产生这个session的时间。 如果last_activity + session更新时间,大於现在的话,表示这个session产生到现在 还没超过5分钟,直接返回,啥事都不做。 但是如果超过5分钟的话,你看他的注解,是保存旧资料,换一个新的session_id。 所以你观察到每5分钟,就会重新产生一个session id,这没问题,符合设计! ========================================================================= 再来我们来看过期的部份: // Is the session current? if (($session['last_activity'] + $this->sess_expiration) < $this->now) { $this->sess_destroy(); return FALSE; } 这个IF很明了了,last_activity + 过期时间,如果小於现在时间,表示已经超过 7200秒了,那麽就砍掉这个session。 所以,如果你每5分钟就重新整理一次,两小时的过期时间,也往後推迟5分钟!XD 单看字面上,你可能会以为是说,从本session产生後的两小时後过期,但是其实不是, CI的session expire是指距离上次活动之後,闲置超过两小时,这才算过期。 所以你的观察的结果正确,你一直重新整理,就是不会过期的啦!XD CI的session是server端产生一个session id,然後经过编码後,在client端写入一个 对应目前session id的cookies。 当client连进来的时候,先读取client端的cookies,查找对应的session_id,如果你 观察过client端的cookies,你只会得到一长串编码过的资讯。 CI的session过期跟更新这部份,单看字面说明,有时候会有错误的理解,翻原始码来 看最准,至於ion_auth的话,小弟没用过,我用内建的session就很很好用了,这部份 就帮不上忙了。 希望这篇可以帮助你了解CI是怎麽处理session的。 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 36.234.10.218







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP