SESSION是使用自带的
想实现的功能是
每张收货单同时只允许一个操作员进行操作
如果操作员A在对收货单001进行收货操作时,操作员B看得到收货单001,但无法对收货单001进行收货操作
如果操作员A的会话超时,或者手动退出对收货单001的收货操作,则操作员B可以对收货单001进行收货操作现在想到的就是在收货单表上添加一个字段SID,用来记录SESSION ID
如果SID为空,则允许操作
如果SID与当前SESSION ID一致,则允许操作
如果SID与当前SESSION ID不一致,则通过SID查询SESSION中对应的SESSION ID是否过期
如果已经过期(或者不存在此SESSION ID),则用当前SESSION ID替换SID,允许操作
如果未过期,则不允许操作现在就是不知道如何查询指定的SESSION ID是否过期
以前都是用数据库记录SESSION,数据库的话就简单了...第一次用PHP自带的SESSION管理,不知道该如何实现这功能...
想实现的功能是
每张收货单同时只允许一个操作员进行操作
如果操作员A在对收货单001进行收货操作时,操作员B看得到收货单001,但无法对收货单001进行收货操作
如果操作员A的会话超时,或者手动退出对收货单001的收货操作,则操作员B可以对收货单001进行收货操作现在想到的就是在收货单表上添加一个字段SID,用来记录SESSION ID
如果SID为空,则允许操作
如果SID与当前SESSION ID一致,则允许操作
如果SID与当前SESSION ID不一致,则通过SID查询SESSION中对应的SESSION ID是否过期
如果已经过期(或者不存在此SESSION ID),则用当前SESSION ID替换SID,允许操作
如果未过期,则不允许操作现在就是不知道如何查询指定的SESSION ID是否过期
以前都是用数据库记录SESSION,数据库的话就简单了...第一次用PHP自带的SESSION管理,不知道该如何实现这功能...
这样的话还不如直接用数据库来管理SESSION...
将这个时间记录下来到页面里
update之前,先根据这个时间加上主键判断数据库是否还有这条记录
如果有的话,进行update操作,同时更改这个表的时间字段
如果没有,就是别的操作员已经更新过了,提示就OK了如果有别的操作员同时操作的情况,就应该用行级锁,这样最保险
那么只需要检查 session 临时文件的最后访问时间就可知道是否过期了
涉及函数:
session_save_path 取得 session 临时文件保存目录
若为空则自行取得系统的领事文件目录session_cache_expire 取得 session 过期时间filemtime 取得文件上一次修改的时间session 临时文件名:'sess_' . SID
cookie——客户端存储状态既然选择了cookie,就不要怕再和数据库打点交道。
但...如果启用了mm拓展呢??
如果使用了mm拓展,貌似是直接记录在session_mm_apache2handler0.sem这个文件里的是不??貌似没发现类似sess_xxxxx的文件